Date.toString()在Firefox中不能将小时转换为正确的时区

Date.toString() not converting hours to proper timezone in Firefox

本文关键字:转换 小时 时区 不能 toString Firefox Date      更新时间:2023-09-26

我有一些由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

与其使用ISO 8601时间戳,不如使用RFC 2822时间戳。Django和javascript的Date.parse()都与此兼容,Chrome和Firefox的实现也以同样的方式工作。

唯一需要做的改变是在Django模板中呈现时间戳服务器端。与其使用|date:'c',不如直接使用|date:'r'