【发布时间】:2014-08-15 07:41:26
【问题描述】:
我有一个服务器生成的country/city 格式的位置列表,即
<span class="location" data-timeZoneID="China/Beijing">Beijing</span>
<span class="location" data-timeZoneID="England/London">London</span>
我想使用 JS/Jquery 和 Moment Timezone 执行此操作:
- 从每个项目中提取
data-timezone-属性 - 将其提供给
moment.tz()的实例, - 并将结果附加到元素中,从而在列出的任何位置显示时间。
编辑:我使用 jQuery 成功提取了数据属性值,但是当我尝试将它们传递给 moment().tz() 时;时间未转换,而是显示我的本地客户端时间。当我手动输入 IANA 时区 ID 时,会发生转换(尽管仍然不准确)。关于为什么 data-attribute 提供的值不起作用的任何想法?
这(某种)有效:
$(function(){
$('.location').each(function() {
var timeZone = $(this).data('timezoneid');
var now = moment().tz('Africa/Tripoli').format("MM/DD/YYYY hh:mm");
$(this).append( now );
});
});
这不(显示当地时间):
HTML
<span class="location" data-timeZoneID="Africa/Tripoli">Tripoli: </span><br />
<span class="location" data-timeZoneID="England/London">London: </span>
JS
$(function(){
$('.location').each(function() {
var timeZone = $(this).data('timezoneid');
var now = moment().tz("'" + timeZone + "'").format("MM/DD/YYYY hh:mm");
$(this).append( now );
});
});
jsFiddle
【问题讨论】:
标签: javascript jquery time timezone momentjs