将UTC Epoch转换为本地日期
我现在一直在为此而战。 我试图将时代转换为日期对象。 时代以UTC发送给我。 每当你传递new Date()
一个时代时,它就认为它是本地时代。 我尝试创建UTC对象,然后使用setTime()
将其调整到适当的时期,但唯一似乎有用的方法是toUTCString()
和字符串不帮助我。 如果我将该字符串传递到新的日期,它应该注意到它是UTC,但它不。
new Date( new Date().toUTCString() ).toLocaleString()
我的下一个尝试是尝试获取本地当前时代与UTC当前时代之间的差异,但我无法获得。
new Date( new Date().toUTCString() ).getTime() - new Date().getTime()
它只给我非常小的差异,在1000以下,这是毫秒。
有什么建议么?
我想我有一个更简单的解决方案 - 将初始日期设置为纪元并添加UTC单位。 假设您有一个以秒为单位存储的UTC时代var。 1234567890
怎么样? 将其转换为本地时区中的适当日期:
var utcSeconds = 1234567890;
var d = new Date(0); // The 0 there is the key, which sets the date to the epoch
d.setUTCSeconds(utcSeconds);
d
现在是一个日期(在我的时区)设置为Fri Feb 13 2009 18:31:30 GMT-0500 (EST)
很简单, new Date()
只需要几毫秒,例如
new Date(1394104654000)
> Thu Mar 06 2014 06:17:34 GMT-0500 (EST)
而对于日志,我使用了Moment.js库,我仍然使用它进行格式化。
moment.utc(1234567890000).local()
>Fri Feb 13 2009 19:01:30 GMT-0430 (VET)
链接地址: http://www.djcxy.com/p/18487.html