在远程服务器上运行时,Javascript&n;的Date.getTimezoneOffset返回0

时间:2018-05-24 03:03:32

标签: javascript node.js ubuntu remote-server timezone-offset

我在菲律宾,在localserver / localhost中运行这行代码会正确返回时区偏移。

console.log(new Date().getTimezoneOffset());
// output: -480

但是当我在远程服务器中运行此代码时,它会输出0

我的本​​地服务器设置: Mac os,node.js和mongodb

我们的远程服务器设置: Amazon Web服务(AWS)中的ec2实例,运行ubuntu os,node.js和mongodb。

有没有人知道如何从远程服务器运行时获得时区偏移?

谢谢。

2 个答案:

答案 0 :(得分:0)

您必须在服务器上设置正确的时区。在Ubuntu服务器上,您可以输入以下命令:

sudo dpkg-reconfigure tzdata

为您选择正确的时区,然后在使用时获得正确的时区:new Date().getTimezoneOffset()

如果您需要处理多个时区,我建议您使用moment-timezone轻松完成。

const moment = require('moment');
const losAngeles = moment().tz('America/Los_Angeles');
console.log(losAngeles.format());

const manila = moment().tz('Asia/Manila');
console.log(manila.format());

答案 1 :(得分:0)

尝试检查您的服务器时区:

timedatectl

我猜它可能是" Etc / UTC(UTC,+ 0000)"。如果是这样,那意味着您的服务器当前设置为UTC。这不是您的服务器所在的物理位置。我们可以将计算机设置为任何时区。

但是,对于服务器,我建议将时区保持为UTC。因此,我们可以根据标准单位进行与日期/时间相关的任何计算。我们应该将日期时间值作为UTC时间存储在数据库中。