我在菲律宾,在localserver / localhost中运行这行代码会正确返回时区偏移。
console.log(new Date().getTimezoneOffset());
// output: -480
但是当我在远程服务器中运行此代码时,它会输出0
。
我的本地服务器设置: Mac os,node.js和mongodb
我们的远程服务器设置: Amazon Web服务(AWS)中的ec2实例,运行ubuntu os,node.js和mongodb。
有没有人知道如何从远程服务器运行时获得时区偏移?
谢谢。
答案 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时间存储在数据库中。