【发布时间】:2021-01-20 21:57:00
【问题描述】:
我正在表格中显示名称列表及其时区偏移数字。偏移量数字是它们的时区与 UTC 的偏移量。我需要使用 JavaScript 或 jQuery 更改所有偏移数字以显示该人所在时区的当前时间。
我希望发生的事情是将偏移量数字替换为 calcTime 函数中的当前日期/时间......知道我做错了什么吗?
这是我的代码:
<div class="name">John Doe</div><div class="timezone">-5</div>
<div class="name">Jane Doe</div><div class="timezone">3</div>
<div class="name">Jim Smith</div><div class="timezone">7</div>
<div class="name">Cathy Jones</div><div class="timezone">-3</div>
<script>
$(document).ready(function() {
setTimeout(() => {
function calcTime(offset) {
// create Date object for current location
d = new Date();
// convert to msec
// add local time zone offset
// get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object for different city
// using supplied offset
nd = new Date(utc + (3600000*offset));
// return time as a string
return "The local time is " + nd.toLocaleString();
}
$(".timezone").each(function(){
h = $(this).find(".timezone").text();
element.innerHTML = calcTime(h);
//alert(calcTime('-5'));
});
}, 1000);
});
</script>
【问题讨论】:
-
我不确定您要完成什么。您是否尝试调整日期时间以在不同的时区显示?
-
抱歉,我会调整一下问题。基本上,我们有一个他们的时区与 UTC 的偏移量列表。我需要在他们的名字旁边显示那个人的当地时间。
-
该代码存在一些逻辑问题,无法按所写的那样工作。但是,第一次通过(即使此代码可以工作),
-5或7或 曾经在 HTML 元素中 中的任何 offset 已经替换为字符串。第二次通过该字符串产生无效日期(因为它不再是 偏移量)。 -
@RandyCasburn 感谢您的回复。我知道 calcTime 函数有效,因为我在其他地方找到了它并对其进行了测试,但是我在时区 div 中循环的代码不起作用,因为我是一个 javascript 菜鸟,我不知道如何修复它。 .
-
您正在遍历具有“时区”类的元素,试图在这些元素中找到具有“时区”类的元素。
标签: javascript html jquery