0

在将时区从 GMT 更改为 EST 时显示前一天的 javascript 日期出现时区问题。我已经导入了 momentjs 来帮助解决这个问题,尽管我的尝试使用以下代码失败了。有什么建议么?

原始代码是

thisDate = new Date(myVar);  // original

纠正时区差异的新尝试。

thisDate = moment(thisDate).utc().format();

非常感谢,

更新

var myDate = new Date(myVar);
var displayDate = moment(myDate).zone('+0100').format('YYYY-MM-DD HH:mm');
4

1 回答 1

1

MomentJS 将日期解析为区域设置日期时间。如果没有给出时间,则假定为午夜。

然后,您将其转换为 UTC,因此它会根据您的本地时间向前或向后移动。如果您在 UTC+N 中,那么您将获得前一个日期。

检查此格式

moment(new Date('07-18-2013')).utc().format("YYYY-MM-DD HH:mm").toString()
"2013-07-17 21:00"

moment(new Date('07-18-2013 12:00')).utc().format("YYYY-MM-DD HH:mm").toString()
"2013-07-18 09:00"

Date()
"Thu Jul 25 2013 14:28:45 GMT+0300 (Jerusalem Daylight Time)"


moment(new Date('07-18-2013 UTC')).utc().format("YYYY-MM-DD HH:mm").toString()
"2013-07-18 00:00"


// always "2013-05-23 00:55"
moment(1369266934311).zone('+0100').format('YYYY-MM-DD HH:mm')

请参阅本文档。

更新 :

moment().format("dddd, MMMM Do YYYY, h:mm:ss a");

// “2010 年 2 月 14 日,星期日,下午 3:25:50”

于 2013-08-07T07:00:51.153 回答