【发布时间】:2019-03-08 07:27:55
【问题描述】:
我正在尝试根据用户本地时区显示时间。服务器节省时间到 UTC。
所以,我的数据库中保存了一个日期时间。
2018-10-03 05:55:51 // my server is digital ocean
所以现在我正在尝试控制本地时间的用户。我的时区设置为
Sylhet Bangladesh
时间偏移为-360
var offset = new Date().getTimezoneOffset();
console.log(offset) // offset is -360
var testDateUtc = moment.utc("2018-10-03 05:55:51");
var localDate = moment(testDateUtc).utcOffset(offset);
console.log(localDate.format("YYYY-DD-MM hh:mm:ss"));
上面的代码打印的日期不正确,但时间正确。
2018-02-10 11:55:51 日期错误。
然后我将我的 mac 时区更改为 Dubai,即 2 hours different then my country
对于迪拜,偏移量是-240,它显示时间
2018-03-10 01:55:51 这意味着日期正确但时间不正确。
请帮忙。谢谢。
编辑
它适用于我这样测试的大多数国家
offset = Math.abs(offset) 所以它总是积极的
【问题讨论】:
-
如果我理解的话,实际上日期是对的。如果从 05:55 中减去 6 小时,则为前一天的 11:55(PM)。对不起,如果我错过了重点。
-
如果您担心日期,也许您的意思是
YYYY-MM-DD hh:mm:ss而不是YYYY-DD-MM hh:mm:ss?
标签: javascript timezone momentjs timezone-offset