【发布时间】:2016-01-19 10:59:48
【问题描述】:
我的服务器在 EDT -4 中,我正在尝试使用 momentj 将数据库中的日期转换为用户的本地时区。我什么都试过了,还是不行。
这些是我尝试过的:
//1
var servertime= array[data].time
var localtime= moment(servertime).toDate();
var time = moment(localTime).format('YYYY-MM-DD HH:mm:ss');
//Actual Database time: 2015-10-20 12:42:47 Output:2015-10-20 12:42:47
//2
var servertime= array[data].time
var localtime= moment.utc(servertime).toDate();
var time = moment(localTime).format('YYYY-MM-DD HH:mm:ss');
//Actual Database time: 2015-10-20 12:42:47 Output:2015-10-20 12:42:47
似乎时刻根本没有改变它。
例如,当服务器上的 UTC 时间是:2015 年 10 月 20 日 17:29 我的电脑时钟 UTC +1 是 2015 年 10 月 20 日 7:30
【问题讨论】:
-
“它不起作用”永远是不够的信息。输入、期望输出和实际输出是什么?你是如何获得数据的?为什么您的 服务器 时区很重要? (除非您使用服务器的时区存储日期,否则这几乎肯定是一个错误......)
-
大概在某个地方你必须告诉 moment 服务器时间是 EDT?在第一个示例中您没有做任何类似的事情,而在第二个示例中您声称它是 UTC。
-
@JonSkeet 我添加了输入输出。似乎连时间都没有改变
-
好吧,您已经展示了
localtime是什么,但您还没有展示您如何计算出servertime是什么。 -
但是你还没有展示你是如何获得数组的。例如,它可能已经在 UTC 中,因此调用
utc不会有任何区别。基本上,我们目前没有机会重现该问题,因为您只是给我们提供了一些信息。
标签: javascript date timezone momentjs