【问题标题】:Issues With Converting Epoch Time to Correct Date将纪元时间转换为正确日期的问题
【发布时间】:2020-02-22 04:42:41
【问题描述】:

我有带有纪元时间戳的文件,例如1564002293050。使用https://www.epochconverter.com/ 这显示Wednesday, July 24, 2019 9:04:53.050 PM 但是我的代码显示Mon Apr 06 51531 02:24:10 GMT-0700 (Pacific Daylight Time)。这是为什么呢?

因为时间是在 Unix 中生成的,所以我乘以 1000 为毫秒。然后显示该值。

time = 1564002293050;
var dateStamp = new Date(time* 1000);

编辑: 我引用了this post 和其他几个类似的。请注意,不将其乘以 1000 将得到"Invalid Date"

编辑 2: 想办法。我正在解析数据,但看起来我必须将其转换为整数 parseInt(time) 最终解决了这个问题。对不起,不相关的解决方案..

【问题讨论】:

    标签: javascript time data-conversion epoch


    【解决方案1】:
    document.write(new Date(1564002293050));
    

    打印Wed Jul 24 2019 15:04:53 GMT-0600 (Mountain Daylight Time)(在我的 TZ 中)。

    即使它在 HTML 中输出相同,尽管没有在语法上声明所述变量。

    time = 1564002293050;
    var dateStamp = new Date(time);
    document.write(dateStamp);
    

    您是在浏览器上执行此操作吗?另一个 Javascript 引擎?

    【讨论】:

    • 我在最新版本的 chrome 中运行它。
    • 感谢您的确认。看起来我解析的时间仍然是字符串。使用 parseInt(time) 解决了这个问题。将 var 乘以 1000 是否会在 Javascript 中将变量隐式转换为整数?
    【解决方案2】:

    Date 构造函数采用以毫秒为单位的纪元时间 (https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date)。您的时间以毫秒为单位。无需乘以 1000。

    【讨论】:

    • 不乘以 1000 显示为 "Invalid Date"
    • 您在哪里执行此操作,您能否提供一个可重现的示例(可能是 jsfiddle)来显示您的错误?
    猜你喜欢
    • 2022-01-19
    • 2021-12-20
    • 2018-04-24
    • 2011-12-06
    • 2012-09-06
    • 2019-07-20
    • 2019-07-02
    • 2012-11-08
    • 2019-01-15
    相关资源
    最近更新 更多