如何通过Safari上的moment.js修复解析错误?

时间:2016-08-30 09:18:40

标签: javascript momentjs

如何通过moment.js修复解析错误?

Const.DATE_MONTH_FORMAT = 'DD-MMM-YYYY';
var fromDate = moment(new Date(period.fromDate)).format(Const.DATE_MONTH_FORMAT);

在Firefox上,Chrome:19-Aug-2016

在Safari上:Invalid date

在Firefox上: console.debug(period);

 Object { fromDate="19/Aug/2016",  toDate="30/Aug/2016"}

1 个答案:

答案 0 :(得分:2)

format()用于输出,而不是用于确定输入的格式。您还要将period.fromDate传递给Date构造函数,而不是时刻,所以您正在使用浏览器自己的解析,当日期不符合JS规范(which DD/MMM/YYYY doesn't)时,它可以做任何喜欢的事情。 Firefox和Chrome显然认为他们可以从period.fromDate获取日期,而Safari则不能。您应该能够通过将字符串直接传递到片刻以及period.fromDate的格式来解决此问题,因此它可以自己完成所有工作:

Const.DATE_MONTH_FORMAT = 'DD-MMM-YYYY';
var fromDate = moment(period.fromDate, "DD/MMM/YYYY").format(Const.DATE_MONTH_FORMAT);