Javascript Moment.js&;具有数据属性时区的时刻时区
我有一个服务器生成的地点列表,采用Javascript Moment.js&;具有数据属性时区的时刻时区,javascript,jquery,time,timezone,momentjs,Javascript,Jquery,Time,Timezone,Momentjs,我有一个服务器生成的地点列表,采用country/city格式,即 <span class="location" data-timeZoneID="China/Beijing">Beijing</span> <span class="location" data-timeZoneID="England/London">London</span> 这不会(显示本地时间): HTML JSFIDLE 要理解你的问题有点难,但考虑到你的“一步一步”列表
country/city
格式,即
<span class="location" data-timeZoneID="China/Beijing">Beijing</span>
<span class="location" data-timeZoneID="England/London">London</span>
这不会(显示本地时间):
HTML
JSFIDLE
要理解你的问题有点难,但考虑到你的“一步一步”列表,我会做以下工作:
$(function(){
$('.location').each(function() {
var timeZone = $(this).data('timeZoneID');
var now = moment().tz(timeZone).format('HH:MM');
$(this).append( now );
});
});
这是一个有效的JSFIDLE 请注意我所做的两个更改:
- London is Europe/London instead of England/London
- the format is HH:mm instead of HH:MM
感谢您的回复-当我运行代码时,
时区
变量似乎返回一个未定义的值
-您可以在这里看到:我不能使用该小提琴,因为需要身份验证,但是我意识到我使用了错误的时刻,应该是这样的(在时刻调用函数):我发现未定义
数据属性的问题在于使用大写字符,这导致jQuery将字符串解释为多个数据属性
s。现在它显示了一个时间,但这只是我的本地时间。哇。我已经阅读了大约50次代码,重新阅读了文档,尝试更改了每一行…非常感谢您的帮助!
$(function(){
$('.location').each(function() {
var timeZone = $(this).data('timezoneid');
var now = moment().tz("'" + timeZone + "'").format("MM/DD/YYYY hh:mm");
$(this).append( now );
});
});
$(function(){
$('.location').each(function() {
var timeZone = $(this).data('timeZoneID');
var now = moment().tz(timeZone).format('HH:MM');
$(this).append( now );
});
});
- London is Europe/London instead of England/London
- the format is HH:mm instead of HH:MM