时间戳不一致

时间:2012-11-11 00:18:12

标签: javascript datetime casting timestamp

我正在玩JavaScript日期,我正在寻找有关上次记录的数组的解释。为什么数字1352589000, 1352589395不同?

代码

var examples = [
    "Fri Jan 16 1970 10:43:09 GMT-0500 (EST)",
    1352589395
];

var text = [
    new Date((examples[0])),
    new Date((examples[1])),
];

var unix = [
    new Date((examples[0])).getTime(),
    new Date((examples[1])).getTime(),
];

console.log(examples);
console.log(text);
console.log(unix);

输出

[
  'Fri Jan 16 1970 10:43:09 GMT-0500 (EST)',
  1352589395
][
  'Fri Jan 16 1970 10:43:09 GMT-0500 (EST)' ,
  'Fri Jan 16 1970 10:43:09 GMT-0500 (EST)' 
][
  1352589000,
  1352589395
]

3 个答案:

答案 0 :(得分:1)

数字以毫秒为单位。它们之间的差异是395,不到半秒。您使用的字符串格式仅限于第二个,因此其毫秒部分为0,但您要解析的数字包括毫秒(所有395个)。

答案 1 :(得分:1)

因为Unix时间戳以毫秒为单位。你没有指定毫秒,所以它在1970年1月16日正好给你10:43:09。另一个时间戳在1970年1月16日给你10:43:09.395。

修改

Unix时间戳是自1970年1月1日以来SECONDS的数量.Javascript的getTime()返回自1970年1月1日以来的MILLISECONDS数量。所以是的,它是Unix时间戳...以毫秒为单位。

答案 2 :(得分:-1)

您给Date()两个不同的时间,并且它们都不正确。 Javascript的Date对象不接受当前时间或毫秒或日期字符串或[年,月,日,小时,分钟,秒,毫秒]的参数。

“Fri Jan 16 1970 10:43:09 GMT-0500(EST)”是Date()的无效格式。要获得正确的DateString格式,请选中https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/parse