我在Mozilla的日期有一个问题,我在项目中使用了FullCalendar插件。在使用时刻日期的同时,Chrome似乎工作正常,但Mozilla似乎破裂了。我正在使用时刻。许多博客和帖子似乎都提到了有跨浏览器问题的时刻日期格式。
在这里,
console.log(moment(new Date('2017-02-28T18:30:00')).format('dddd-MMM DD,YYYY'));
Mozilla:星期二-FEB 2017年2月28日
Chrome:星期三至2017年3月1日
我真的很坚持这个,我已经看到了有关在瞬间日期提及格式的帖子,但是我已经使用了上述示例中的格式,但是它未能返回所需的输出。另一方面,Chrome正在返回正确的结果,我在做什么错?
如果您需要任何详细信息,请发表评论。
请勿使用moment(new Date('2017-02-28T18:30:00'))
而不是使用moment(String)
(因为您的输入为ISO 8601格式)。
时刻解析文档说:
警告:浏览器对解析字符串的支持不一致。因为没有应支持哪些格式的规范,所以在某些浏览器中有效的方法在其他浏览器中不起作用。
在此工作样本:
console.log(moment('2017-02-28T18:30:00').format('dddd-MMM DD,YYYY'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
如果您的输入是UTC使用moment.utc
:
moment.utc('2017-02-28T18:30:00')
如果您的输入在给定时区(例如Asia/Calcutta
)使用moment.tz(..., String);
moment.tz('2017-02-28T18:30:00', 'Asia/Calcutta')
默认情况下,在当地时间解析字符串,您需要知道输入的时区。请注意,这一刻的时刻具有local()
,utc()
和tz(String)
的方法来更改矩对象的时区。
您将JS日期转换为MONMJS日期,因此我只能假设Firefox解析JS日期的不同。
使用MomentJS,您应该能够简单地替换您的代码:
moment(new Date('2017-02-28T18:30:00')).format('dddd-MMM DD,YYYY')
with:
moment('2017-02-28T18:30:00').format('dddd-MMM DD,YYYY')
https://momentjs.com/docs/#/parsing/
如果您使用 angularjs ,使用filter
。
$filter('date')('2017-02-28T18:30:00', "dd/MM/yyyy");