Javascript时间戳无效

时间:2012-06-06 10:23:02

标签: javascript timestamp

我整个上午都在整理javascripts时间戳。我通过运行

继续获取无效的时间戳

today = (new Date()).setHours(0,0,0,0)today = (new Date()).getTime()

这两个输出13389300000001338978151748

我认为这只是一个chrome js引擎错误,但是用Firefox重现了它。这两个陈述的预期结果是13389300001338977700

但是,我确实对此有所解决。修复是这样的:

today = parseInt(((new Date()).setHours(0,0,0,0) * Math.pow(10, -3)).toFixed(0))

或没有setHours()

today = parseInt(((new Date()) * Math.pow(10, -3)).toFixed(0))

这是一个常见的错误吗?我做错了什么来获得这些结果?时间戳的格式为时间戳* 10 ^ 3.

编辑:

我已经期待在SECONDS中度过的时光了(让你觉得PHP),而JAVASCRIPT在MILLISECONDS中输出它。我正在使用phpJS日期/时间库,javasctipt时间戳似乎与strtotime()和date()

本身不兼容

我正在尝试使用unix时间戳,这些都是在几秒钟内完成的。

3 个答案:

答案 0 :(得分:6)

getTime()返回自1970/01/01以来的毫秒数,而不是秒数。

//milliseconds
var milliseconds = new Date().getTime();

//seconds
var seconds = new Date().getTime() / 1000;

答案 1 :(得分:1)

这不是一个错误 - 你期望一个时间戳在几秒钟内(为什么?),而javascript给出时间戳以毫秒精度。

答案 2 :(得分:1)

Unix时间戳使用秒,但Javascript时间戳使用毫秒!这就是为什么你需要乘以倍数。

http://www.w3schools.com/jsref/jsref_utc.asp

  

UTC()方法返回a之间的毫秒数   根据普遍性,1970年1月1日的指定日期和午夜   时间。