生产服务器中的 MomentJS 给了我一个不同的 unix 时间戳

MomentJS in production server gives me a different unix timestamp

本文关键字:一个 unix 时间戳 服务器 MomentJS      更新时间:2023-09-26

请帮助我了解问题所在。在表单中,我可以设置闹钟,选择日期并选择时间。我只想选择此日期+时间的unix时间戳。

我使用 momentjs 来获取所选日期和时间的 unix 时间戳。

在我的电脑中,它运行良好。但在生产服务器中,以秒为单位的时间戳是 6 小时后。

这是一段 js 代码:

var date = jqForm.find("input[name=alert_date]").val();
                        var time = jqForm.find("input[name=alert_time]").val();
                        var datetime = date+' '+time;
                        console.log(datetime);
                        ts_datetime = moment(datetime, "DD/MM/YYYY H:mm").unix();
                        console.log(ts_datetime);
                        options.data = {'ts_datetime' : ts_datetime};

服务器具有正确的日期和时间。

假设您的输入相同(您没有提供),那么您很可能只是看到服务器的时区和机器的时区之间的差异。

UNIX 时间戳以 UTC 为单位,但您正在调用 moment 函数,默认情况下,该函数使用本地时区。

如果希望输入采用 UTC,则可以改为调用moment.utc(...)

ts_datetime = moment.utc(datetime, "DD/MM/YYYY H:mm").unix();