4

我在玩 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
]
4

3 回答 3

1

数字以毫秒为单位。它们之间的差异是395,不到半秒。您使用的字符串格式只下降到秒,因此它的毫秒部分为 0,但您正在解析的数字包括毫秒(全部 395)。

于 2012-11-11T00:23:18.493 回答
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 时间戳……以毫秒为单位。

于 2012-11-11T00:23:37.620 回答
-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

于 2012-11-11T00:36:12.780 回答