Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Moment.js&;具有数据属性时区的时刻时区_Javascript_Jquery_Time_Timezone_Momentjs - Fatal编程技术网

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