[英]UTC date and time to local
我写了一个函数来将UTC时间反转到当地时间
function utcToLocal(utc){
var t = new Date(Number(utc));
d = [t.getFullYear(), t.getMonth(), t.getDate()].join('/');
d += ' ' + t.toLocaleTimeString();
return d;
}
但我不能确认这段代码是对的吗?
您应该能够将UTC时间戳转换为本地日期,只需减去本地偏移量(以分钟为单位),因此:
function utcToLocal(utc){
// Create a local date from the UTC string
var t = new Date(Number(utc));
// Get the offset in ms
var offset = t.getTimezoneOffset()*60000;
// Subtract from the UTC time to get local
t.setTime(t.getTime() - offset);
// do whatever
var d = [t.getFullYear(), t.getMonth(), t.getDate()].join('/');
d += ' ' + t.toLocaleTimeString();
return d;
}
我在哪里,偏移是-600,所以我需要从UTC时间减去-36,000,000毫秒(实际上增加36,000,000毫秒)。
我可能误解了这个问题。
javascript日期实例的内部值是UTC时间片段(以毫秒为单位)。 因此,如果utc
是这样的时间(例如2012-08-19T00:00:00Z是1345334400000),则OP将基于该值创建日期实例,并且toLocaleTimeString
将显示所提供的UTC的本地时间的实现相关字符串。时间。
因此,如果当地时区偏移量为-6小时,则alert(new Date(1345334400000)))
显示类似于星期六2012年8月18日18:00:00 GMT-600 。
我假设OP想要将当地时间设置为UTC时间,例如2012-08-19T00:00:00Z将成为2012-08-19T00:00:00本地时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.