javascript日期的时区问题

时间:2013-08-07 06:51:24

标签: javascript momentjs

有一个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');

1 个答案:

答案 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”