Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 为不同的城市、国家显示不同的时区_Javascript - Fatal编程技术网

Javascript 为不同的城市、国家显示不同的时区

Javascript 为不同的城市、国家显示不同的时区,javascript,Javascript,救命啊!我试图为不同的城市、国家(offset/UTC)显示不同的时区。这样,当我设置营业时间时,如果它打开或关闭,它将显示。这是我的JS: var checkTime = function () { var now = new Date(); var timeDiv = document.getElementById('timeDiv'); var messageDiv = document.getElementById('messageDiv'); timeDiv.innerHTML = n

救命啊!我试图为不同的城市、国家(offset/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();
var checkTime=函数(){
var now=新日期();
var timeDiv=document.getElementById('timeDiv');
var messageDiv=document.getElementById('messageDiv');
timeDiv.innerHTML=now.toString();
var dayOfWeek=now.getDay();//0=星期日,1=星期一,…6=星期六
var hour=now.getHours();//0=12am,1=1am,…18=6pm
//检查工作日是否在上午9点到下午6点之间
如果(星期日>0和星期日<6和小时>8和小时<18){
messageDiv.innerHTML='是的,我们是开放的!';
messageDiv.className='open';
}
否则{
messageDiv.innerHTML='抱歉,我们已经关闭!';
messageDiv.className='closed';
}
};
设置间隔(检查时间,1000);
检查时间();

使用矩时区库,您可以执行以下一些功能:

格式化任何时区的日期

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

您可以在这里找到库:

首先,javascript使用客户端机器的时间,这意味着您不必担心时区(当您调用“new Date()”)时),它将始终位于客户端位置

但是,对于开放时间,您需要在服务器端检查商店是否位于另一个位置(时区不同),因为客户端时间无法完全占用

此外,您不能对时区函数进行编码,如果仍然需要处理它,则必须使用库。为什么?原因如下:


在你的代码中,我看不到任何地方需要时区。

你在哪里指定你想要时区的城市和国家?如果你反对投票,请留下评论,我的答案没有错误,我没有添加指向库的链接,因为赛斯已经添加了链接