Date.toString()不会在Firefox中将小时转换为适当的时区

时间:2015-06-04 15:18:27

标签: javascript django date datetime firefox

我有一些由Django模板呈现的HTML,它格式化了ISO 8601格式的时间戳,例如:

<span class="my-date">2015-06-04T13:00:00</span>

我正在使用一些Javascript将此时间戳转换为用户的本地时区:

$(document).ready(function(){
  $('.my-date').each( function(){
    var tz_date = new Date( $(this).text() );
    $(this).text( tz_date.toString() );
  });
});

这在Chrome中运行良好(例如,结果为Thu Jun 04 2015 09:00:00 GMT-0400 (EDT)),但我在Firefox中遇到问题,显示Thu Jun 04 2015 13:00:00 GMT-0400 (EDT)。似乎Firefox正确地附加了用户的时区,但它没有调整小时数。

我想在这里查看我的代码中是否有一些不好的假设,或者这是Firefox中的错误。

jsFiddle

1 个答案:

答案 0 :(得分:0)

您可以使用RFC 2822时间戳,而不是使用ISO 8601时间戳。 Django和javascript的Date.parse()都与此兼容,Chrome和Firefox的实现都以相同的方式运行。

需要进行的唯一更改是在呈现时间戳服务器端的Django模板中。不要使用|date:'c',只需使用|date:'r'即可。