我正在尝试创建三个moment.js对象,一个用于当前用户的系统时间,两个用于同一天的地点开放和关闭时间。
首先,我创建了一个date对象,如下所示:
var today = moment();
然后我循环遍历一个对象数组:
$(locations).each(function(){
switch(this.time_zone) {
case 'EST':
zoneOffset = '-04:00';
break;
case 'CST':
zoneOffset = '-05:00';
break;
case 'MST':
zoneOffset = '-06:00';
break;
case 'PST':
zoneOffset = '-07:00';
break;
default:
zoneOffset = '-04:00';
}
var timeOpen = today.format("YYYY")+'-'+today.format("MM")+'-'+today.format("DD")+'T'+this.hours['d'+today.day()+'s']+zoneOffset;
var timeClose = today.format("YYYY")+'-'+today.format("MM")+'-'+today.format("DD")+'T'+this.hours['d'+today.day()+'e']+zoneOffset;
openingHrs = moment(timeOpen);
closingHrs = moment(timeClose);
console.log(this.id+' '+zoneOffset+' - '+openingHrs.format());
我有一个开关来检查每个位置的time_zone。当我通过控制台输出我的一个日期(openingHrs)时,结果总是偏移量-04,即使变量zoneOffset表明不是这样?我假设默认值是这样插入的:
48 -06:00 - 2019-03-21T10:00:00-04:00
49 -05:00 - 2019-03-21T08:30:00-04:00
50 -07:00 - 2019-03-21T11:00:00-04:00
51 -05:00 - 2019-03-21T09:00:00-04:00
52 -05:00 - 2019-03-21T09:00:00-04:00
这就是我在JSON中使用的:
"time_zone":"CST",
"hours":{
"d1s":"08:00:00",
"d1e":"17:00:00",
"d2s":"08:00:00",
"d2e":"17:00:00",
"d3s":"08:00:00",
"d3e":"17:00:00",
"d4s":"08:00:00",
"d4e":"17:00:00",
"d5s":"08:00:00",
"d5e":"17:00:00",
"d6s":"00:00:00",
"d6e":"00:00:00",
"d7s":"00:00:00",
"d7e":"00:00:00"
}
我有超过200个“地点”,每个地点都有不同的时间和时区。最终,我要做的是创建一个地图,这样无论用户是在纽约、洛杉矶,还是两者之间的某个地方,如果他们查看地图上的标记,我都希望它根据位置、时区等显示为开放或关闭。
https://stackoverflow.com/questions/55288256
复制相似问题