javascript中的UTC时间戳

时间:2013-09-20 02:58:15

标签: javascript jquery datetime

我有倒计时插件,它采用时间戳并以天/小时/分钟的形式返回倒计时....所有时间戳都以UTC时区存储。

因此,在我改变网站时区之前,这种情况一直很好。

我必须不时更改我的时区 ...所以现在我得到的所有倒计时都是错的。

这是我的插件基本上如何工作

time_left_ms = given timestamp - currentstime stamp / 1000 ;

e.g

var time_left = Math.floor((options.timestamp - (new Date())) / 1000);

所以我认为我可以使用UTC时间戳来修复它

var d = new Date();
var utc =Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());

left = Math.floor((options.timestamp - (utc)) / 1000);

但仍然是同样的错误结果...... 在那之后我试着看看最新情况

console.log( d +'####'+utc +'####'+d.getTime());

这是输出

Thu Sep 19 2013 19:10:13 GMT+0330 (Iran Standard Time)##1379605213010##1379605213010

怎么了?显然时区在亚洲/ Thran ...但为什么我得到亚洲/德黑兰和UTC相同的时间戳? ......都是1379605213010

2 个答案:

答案 0 :(得分:1)

日期为specified,为UTC时间1970年1月1日以来的毫秒数:

  

Date对象包含一个数字,表示在一毫秒内的特定时刻。这样的数字称为时间值。 (...)

     

自UTC时间1970年1月1日起,时间以ECMAScript为单位,以毫秒为单位。

Date.prototype.getTime returns this internal time value

答案 1 :(得分:0)

此返回UTC

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC

并返回UTC

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime

它必须是相同的

我不认为时区的时间数字表示,它总是UTC

var x = new Date();
x.getTime();   //1379646809459
x.valueOf();   //1379646809459