【问题标题】:Timestamp Inconsistency时间戳不一致
【发布时间】:2012-10-30 21:56:54
【问题描述】:

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

【问题讨论】:

  • +1 表示“玩弄...”
  • 这不是您遇到的问题,但请注意,您不能指望该日期字符串被不同的 JavaScript 引擎解析。从 ES3 开始,需要一个 JavaScript 引擎来解析它从 Date#toString 生成的格式,但没有其他引擎(大多数引擎支持“年/月/日”,但不一定有任何变化),并且Date#toString 提供的格式不受规范的限制。在 ES5 中,规范添加了 ISO-8601 的简化版本:ecma-international.org/ecma-262/5.1/#sec-15.9.3.2

标签: javascript datetime casting timestamp


【解决方案1】:

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

【讨论】:

  • 非常感谢您的回答,很有道理。
【解决方案2】:

因为 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 时间戳...以毫秒为单位。

【讨论】:

  • 您的意思是“Unix 时间戳以秒为单位”吗?感谢您的回答。
  • Unix 时间是自 1970 年 1 月 1 日午夜 (UTC) 以来经过的秒数。
  • @ThomasReggi getTime() 以毫秒为单位为您提供 Unix 时间戳。
【解决方案3】:

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

“1970 年 1 月 16 日星期五 10:43:09 GMT-0500 (EST)”对于 Date() 格式无效。对于正确的 DateString 格式,请检查 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/parse

【讨论】:

  • "Javascript 的 Date 对象不接受当前时间或毫秒或日期字符串或 [年、月、日、小时、分钟、秒、毫秒] 的参数" 当然可以:ecma-international.org/ecma-262/5.1/#sec-15.9.3.2 你说得对,该日期格式无效除非这是toString 在他/她正在使用的实现上的Date 对象上返回的内容。 (除了 ES5 添加的简化 ISO-8601 之外,还需要一个实现来支持解析它产生的格式。)
猜你喜欢
  • 2015-03-31
  • 1970-01-01
  • 2017-12-17
  • 2018-01-02
  • 2017-01-31
  • 2011-12-02
  • 2022-12-03
  • 2021-11-11
  • 2021-07-25
相关资源
最近更新 更多