gpt4 book ai didi

javascript - 日期类转换时间戳错误

转载 作者:行者123 更新时间:2023-11-30 16:38:57 25 4
gpt4 key购买 nike

在我的应用程序中,我正在创建一个实时控制台,我在其中输出消息及其时间戳和内容。根据我的阅读,我在下面对 Date() 类使用的方法应该按预期工作,其中时间戳乘以 1000 以获得毫秒数。

我正在记录时间戳以进行调试,并获取类似“1441041070066”的值。当我将它们插入 Epoch/Unix 转换器时,日期/时间是正确的。然而,我的代码给我的废话是“22:7:46”,然后 1 分钟后是“20:48:37”。谁能解释一下我在这种情况下做错了什么?

messages.forEach( function (item)
{
var timestamp = item.Timestamp; // /Date(1440823073243)/
var timestamp = timestamp.substring(timestamp.lastIndexOf("(")+1, timestamp.lastIndexOf(")"));

console.log(timestamp);

var source = item.Source;
var type = item.Type;
var contents = item.Contents;

// Get Date/Time in Milliseconds
var date = new Date(timestamp * 1000);
var time = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();

console_log("<font color='blue'>" + time + "</font>" + ": " + contents);
});

最佳答案

您得到的时间戳已经 毫秒了。我不知道你使用的是哪个转换器,但是如果你将 1440823073243 放入 epochconverter.com它显示:

Assuming that this timestamp is in milliseconds

... 并得出时间戳 GMT:星期六,2015 年 8 月 29 日 04:37:53 GMT

所以基本上你应该删除代码的 * 1000 部分,但是将 timestamp (它仍然是一个字符串)解析为一个数字:

var date = new Date(parseInt(timestamp));

此外,您应该使用其他方式来格式化您的日期:

  • 您当前使用的是用户的时区;目前尚不清楚这是否是您想要的。 (很可能是,但你应该考虑一下。)
  • 通过仅使用字符串连接,您不会得到任何填充,从而导致像“22:7:46”这样的字符串。

基本上,研究替代格式选项 - 无论是作为 Javascript 标准库的一部分,还是使用类似 moment.js 的东西.

关于javascript - 日期类转换时间戳错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32299204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com