所以我的项目使用的是时刻时区。除了在单元测试之外,它在任何地方都能完美运行。我也想不通为什么。
我在打电话
moment(new Date(date)).tz(timezone).format(mask);
其中日期、掩码和时区如下所示:
date = "2016-11-11T19:34:56.601Z"
mask = "mm-dd-yyyy"
timezone = "America/New_York"
我得到的结果是:34-Fr-yyyy
在另一个调用中,将发生以下情况:
date = "2016-12-13T21:57:53.336Z"
mask = "mm-dd-yyyy"
timezone = "America/New_York"
结果是57-Tu-yyyy
您使用了错误的日期格式,正确的是MM-DD-YYYY
。
var date = "2016-12-13T21:57:53.336Z";
var mask = "mm-dd-yyyy";
var timezone = "America/New_York";
var dateStr = moment(date).tz(timezone).format('MM-DD-YYYY');
console.log(dateStr);
<script src="http://momentjs.com/downloads/moment.js"></script>
<script src="http://momentjs.com/downloads/moment-timezone-with-data.js"></script>
http://momentjs.com/docs/#/parsing/string-format