Mozilla和Chrome中矩的日期不同



我在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");

相关内容

  • 没有找到相关文章

最新更新