【问题标题】:Can't convert timestamp to date properly in Javascript无法在 Javascript 中正确地将时间戳转换为日期
【发布时间】:2022-07-19 20:24:15
【问题描述】:

我使用 mongodb 作为我的数据库,在那个数据库中我有一个时间戳字段,但我没有看到任何类似的格式。其中一些是:

1657479170.7300725
1657479170.7301126
1657479170.7301197
1657479170.9120467
1657479170.932398

当我尝试将其转换为正常日期格式 (YYYY-MM-DD) 时,我得到了正确的日期。例如上面第一个时间戳的转换日期为:

10.07.2022 21:52:50

但是,当我尝试在 javascript 中转换它时,我得到:

1970-01-20 06:24:39

这绝对不是正确的值。

我的转换代码:

ConvH.forEach(conv => {
    conv.tracker.events.forEach(element => {
        console.log(parseFloat( parseFloat(element.timestamp.toFixed(4))),  moment(new Date( parseFloat( element.timestamp.toFixed(4)))).format("YYYY-MM-DD HH:mm:ss"));
        element.timestamp = new Date(element.timestamp).toLocaleString();
        
    })
});

注意:new Date(element.timestamp).toLocaleString();给出同样的东西:/

【问题讨论】:

  • 它认为您的日期是一个纪元日期(1970 年 1 月 1 日之后的毫秒数),这就是您的日期如此接近 1970 年的原因。如果这种格式不标准,您可能需要创建自己的解析器将其转换为所需的格式。

标签: javascript mongodb date timestamp


【解决方案1】:

试试这个:new Date(timestamp.getHighBits() * 1000)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2023-03-16
    • 2014-08-01
    相关资源
    最近更新 更多