您需要在 JS 中编写代码来检查用户的时区,如果不是莫斯科,则显示莫斯科时间。例如:
- 用户A居住在莫斯科时区(UTC+3),因此网站上不显示时间。
- 用户 B 居住在乌法,时区(UTC +5,莫斯科时间 +2),因此该网站为他显示莫斯科时间。这是一段不起作用的代码:
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
time = new Date(Date.now());
var timezone = time.getTimezoneOffset()/60
var mosTime = h + 3
if (timezone != mosTime) {
function getMosTime(){
var time, h, m;
h = time.getUTCHours();
m = addZero(time.getUTCMinutes());
return (mosTime) + '<span>:</span>' + m;
}
function setTimer(){
time.innerHTML = getMosTime();
}
setInterval(setTimer, 1000);
请帮我找到并修复错误!
该行中的
var mosTime = h + 3变量h未定义,并且不会处于严格模式undefined。与数字相加时,结果为NaN。因此,比较timezone != mosTime总是存在的true。getMosTime变量函数time没有指定值。默认值为undefined。尝试调用时会出现错误time.getUTCHours()。必须在函数内部添加指定值的行
getMosTime对于输出,您需要一个可以在其中设置
value或innerHTML的元素console.log。对于不需要显示时间的情况,如果时区是+3 - 只需勾选此项
您也可以简单地将其
toLocaleTimeString与所需的时区一起使用