有一个jzone日期的时区问题,该日期显示将时区从GMT更改为EST的前一天。虽然我尝试使用以下代码失败,但我已经导入了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');
答案 0 :(得分: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')
请参阅此documentation.
更新:
moment().format("dddd, MMMM Do YYYY, h:mm:ss a");
//“2010年2月14日星期日,下午3:25:50”