在javascript中更改时区

在javascript中更改时区,javascript,time,timezone,timezone-offset,gettime,Javascript,Time,Timezone,Timezone Offset,Gettime,我正在为一个小企业网站做一个小项目,我找到了一个有用的脚本教程。脚本将显示一个打开或关闭的标志,这取决于当前的时间我改变了一些事情,但现在它的工作刚刚好,除了一件小事 他们使用的时间设置是错误的。我住在荷兰,这里的时区是UTC+1。javascript正在UTC上运行 这是密码 localTime=new Date(); utc1Time=new Date(localTime.getTime() + (localTime.getTimezoneOffset() + 120) * 60000);

我正在为一个小企业网站做一个小项目,我找到了一个有用的脚本教程。脚本将显示一个打开或关闭的标志,这取决于当前的时间我改变了一些事情,但现在它的工作刚刚好,除了一件小事

他们使用的时间设置是错误的。我住在荷兰,这里的时区是UTC+1。javascript正在UTC上运行

这是密码

localTime=new Date();
utc1Time=new Date(localTime.getTime() + (localTime.getTimezoneOffset() + 120) * 60000); 
hours=utc1Time.getHours(); 
minutes=utc1Time.getMinutes(); 
today=utc1Time.getDay();
现在我想知道应该是什么代码来获得正确的时区。 正如你所知,我是Javascript新手。提前谢谢

编辑:

这是一个我如何使用时间来显示不同符号的例子

if (today==6) {
if (hours>=1&&minutes>=4) {
    if (hours<=23&&minutes<=30) {document.write(statusopen);
    }
    else {document.write(statusclosed);
    }
}
else {document.write(statusclosed);
}
} 
if(今天==6){
如果(小时>=1和分钟>=4){

如果(hours如果您想要一个函数来告诉您当前时间是否在可用小时范围内,您可以尝试以下方法

var hoursOfOperation=[
[8,15],[17,30],//周日
[8,15],[17,30],//星期一
[8,15],[17,30],//星期二
[8,15],[17,30],//星期三
[8,15],[17,30],//周四
[8,15],[17,30],//星期五
[8,15],[17,30]//星期六
];
变量日期=新日期();
var时区_EST=-300;
var open=isOpen(运行小时数、日期、时区);
document.body.innerHTML=打开?'open':'CLOSED';
函数isOpen(工作小时数、日期、时区偏移){
var hasOffset=时区偏移!==未定义;
var hour=hasOffset?date.getUTCHours():date.getHours();
var minute=hasOffset?date.getUTCMinutes():date.getMinutes();
var day=hascoffset?date.getUTCDay():date.getDay();;
var offsetHours=hasOffset?数学下限(时区偏移/60):0;
var offsetMinutes=hasOffset?时区偏移%60:0;
var incrementHour=0;
var incrementDay=0;
如果(偏移分钟数!=0){
递增小时=分钟+偏移分钟>60?1:分钟+偏移分钟<0?1:1;
分钟=模(分钟+偏移分钟,60);
}
如果(偏移量!=0){
递增日=小时+时间间隔>24?1:小时+时间间隔<0?1:1;
小时=mod(小时+非正常时间,24);
}
day=mod(day+incrementDay,7);
控制台日志(天、小时、分钟);
返回(函数(dayOfWeek){
var minTime=dayOfWeek[0];
var minHour=minTime[0];
var minMinute=minTime[1];
如果(小时<分钟小时)返回false;
if(hour==minHour&&minute最大小时)返回false;
if(hour===maxHour&&minute>maxMinute)返回false;
返回true;
}(工作小时[天])
}
功能模块(n,m){
返回((n%m)+m)%m;

}
使用
localTime.getHours
而不是
utc1Time.getHours
。你的代码故意切换到UTC。如果你不想要UTC时间,就不要这样做。像这样?函数displayState(){localTime=newdate();hours=localTime.getHours();minutes=localTime.getMinutes();today=localTime.getDay();它不工作。它不会响应我设置为条件的任何时间。你说的“不会响应任何时间”是什么意思?我看不到任何关于响应问题中某个条件的信息。函数名称表明它只是用来显示时间的,这应该是有效的。如果问题不止于此,请更新问题以显示您正在谈论的内容。@AntonvanElburg:请参阅上面编辑的代码。这是您的方案吗?我使用了相同的h我们的每一天。