我有一些由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中的错误。
答案 0 :(得分:0)
您可以使用RFC 2822时间戳,而不是使用ISO 8601时间戳。 Django和javascript的Date.parse()
都与此兼容,Chrome和Firefox的实现都以相同的方式运行。
需要进行的唯一更改是在呈现时间戳服务器端的Django模板中。不要使用|date:'c'
,只需使用|date:'r'
即可。