我不知道为什么它不起作用? 你能帮我吗?
function calcTime(city, offset) {
d = new Date();
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
nd = new Date(utc + (3600000*offset));
return nd.toLocaleString();
}
var Paris =setInterval( function() { calcTime('gmt', '+1'); }, 500 );
我没有在Paris变量中获得calcTime的值
答案 0 :(得分:1)
setInterval返回一个间隔指针,而不是函数的值。
你可能想要这个
function calcTime(city, offset) {
var d = new Date();
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
var nd = new Date(utc + (3600000*offset));
return nd.toLocaleString();
}
var parisTId =setInterval( function() {
document.getElementById("paris").innerHTML=calcTime('gmt', '+1');
}, 500 );
答案 1 :(得分:0)
您似乎正在尝试将当前时间放在具有特定偏移量的小时(大概是小数小时,因为并非所有时区偏移都是完整小时)。你可以简单地使用:
来做到这一点// Offset is per javascript timezone offset, i.e. minutes to subtract
// from UTC to get local time, so for a place that is UTC+01:00 use -60
function calcTime(offset) {
var d = new Date();
d.setMinutes(d.getMinutes() + d.getTimezoneOffset() - offset);
return d;
}
请注意,使用 toLocaleString 会报告用户当前位置的时区,而不是调整日期的时区,因此您可能希望构建自己的具有正确偏移量的字符串(说基于ISO 8601)。