请帮忙!我试图为不同的城市,国家/地区显示不同的时区。(偏移/ UTC)这样,当我设置营业时间时,如果它打开或关闭,它将显示。这是我的JS:
var checkTime = function () {
var now = new Date();
var timeDiv = document.getElementById('timeDiv');
var messageDiv = document.getElementById('messageDiv');
timeDiv.innerHTML = now.toString();
var dayOfWeek = now.getDay(); // 0 = Sunday, 1 = Monday, ... 6 = Saturday
var hour = now.getHours(); // 0 = 12am, 1 = 1am, ... 18 = 6pm
// check if it's a weekday between 9am and 6pm
if (dayOfWeek > 0 && dayOfWeek < 6 && hour > 8 && hour < 18) {
messageDiv.innerHTML = 'Yes, we\'re open!';
messageDiv.className='open';
}
else {
messageDiv.innerHTML = 'Sorry, we\'re closed!';
messageDiv.className='closed';
}
};
setInterval(checkTime, 1000);
checkTime();
答案 0 :(得分:-1)
使用Moment Timezone库,您可以执行以下某些功能:
在任意时区中格式化日期
var jun = moment("2014-06-01T12:00:00Z");
var dec = moment("2014-12-01T12:00:00Z");
jun.tz('America/Los_Angeles').format('ha z'); // 5am PDT
dec.tz('America/Los_Angeles').format('ha z'); // 4am PST
jun.tz('America/New_York').format('ha z'); // 8am EDT
dec.tz('America/New_York').format('ha z'); // 7am EST
jun.tz('Asia/Tokyo').format('ha z'); // 9pm JST
dec.tz('Asia/Tokyo').format('ha z'); // 9pm JST
jun.tz('Australia/Sydney').format('ha z'); // 10pm EST
dec.tz('Australia/Sydney').format('ha z'); // 11pm EST
在时区之间转换日期
var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
newYork.format(); // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format(); // 2014-06-01T17:00:00+01:00
您可以在此处找到图书馆:http://momentjs.com/timezone/
答案 1 :(得分:-1)
首先,javascript使用客户端机器的时间,这意味着你不必担心时区(当你打电话给&#34;新的日期()&#34;)它将永远是现在在客户端。
但是,对于营业时间,您需要在服务器端检查商店是否在另一个位置(具有不同的时区),因为客户时间不能完全被推送。
此外,您无法编写时区功能,如果您仍需要处理它,必须使用库。为什么?这就是为什么:
https://www.youtube.com/watch?v=-5wpm-gesOY
在您的代码中,我不认为任何地方都需要时区。