我的服务器在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
答案 0 :(得分:1)
你做的几乎一切都是正确的。您的主要问题是您将javascript日期对象存储在localtime
变量中。
//I'm assuming your this is your server time. This assumes your server time is in UTC.
var servertime= '2015-10-20 12:42:47';
//Create a utc moment, then convert it to the local time. localtime is a momentjs object.
var localtime = moment.utc(servertime).local();
//format the local time
var time = localtime.format('YYYY-MM-DD HH:mm:ss');
.utc()
和.local()
分别以UTC和本地时间显示时间。有关详细信息,请参阅http://momentjs.com/docs/#/parsing/utc/。
答案 1 :(得分:1)
显然在我的数据库中插入的时间不是unix时间,所以我在php中使用php time()函数将我的php代码改为而不是current_timestamp。然后我在php中使用了日期(' c',mytimedata)来使其以适当的格式在瞬间使用。然后简单地使用:
var localTime = moment(array[data].time).toDate();