如何通过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"}
最佳答案
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);
关于javascript - 如何在Safari上通过moment.js修复解析错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39223468/