目标: 为我们的下一个可用直播创建倒计时。
详细信息:
我们每周直播六次(太平洋标准时间)。
1. 周日上午 8:00
2. 周日上午 10:00
3. 周日下午 12:00
4. 周日下午 6:30
5. 周三晚上 7:00
6. 周六上午 10:00
我的方法: 最初我检查现在是哪一天和几点,然后创建下一个流的倒计时。这适用于我们的时区 (PST) 和任何相对接近的时区。
问题: 首先检查这一天打破了我对时区人员的方法,这些时区让他们比我们早一天。例如,如果来自伦敦的某人在星期四凌晨 2:30(格林威治标准时间)检查该网站,我的代码将开始倒计时到星期六上午 10:00 流,而不是在星期三晚上 7:00(太平洋标准时间)开始倒计时,后者将从 30 点开始分钟。
我确信我所做的可以清理和改进,告诉我如何。
我的代码:
// Countdown
function countDown( addDay, hour, min ) {
var newCount = new Date();
newCount = new Date(newCount.getFullYear(), newCount.getMonth(), newCount.getDate() + addDay, hour, min);
$('#service_countdown').countdown({until: $.countdown.UTCDate(-8, newCount)});
}
var day_ref, day, addDay, hour, min;
addDay = 0;
hour = 0;
min = 0;
day = {};
day_ref = new Date();
day = {"day" : day_ref.getDay(), "hour" : day_ref.getHours(), "min" : day_ref.getMinutes()};
// It's Sunday
if ( day.day === 0 ) {
if ( day.hour < 8 ) {
hour = 8;
countDown(addDay, hour, min);
}
else if ( day.hour < 10 ) {
hour = 10;
countDown(addDay, hour, min);
}
else if ( day.hour < 12 ) {
hour = 12;
countDown(addDay, hour, min);
}
else if ( day.hour <= 18 && day.min < 30 ) {
hour = 18;
min = 30;
countDown(addDay, hour, min);
}
else {
addDay = 3;
hour = 19;
countDown(addDay, hour, min);
}
}
// It's Monday
else if ( day.day === 1 ) {
addDay = 2;
hour = 19;
countDown(addDay, hour, min);
}
// It's Tuesday
else if ( day.day === 2 ) {
addDay = 1;
hour = 19;
countDown(addDay, hour, min);
}
// It's Wednesday
else if ( day.day === 3) {
if ( day.hour < 19 ) {
hour = 19;
countDown(addDay, hour, min);
} else {
addDay = 3;
hour = 10;
countDown(addDay, hour, min);
}
}
// It's Thursday
else if ( day.day === 4 ) {
addDay = 2;
hour = 10;
countDown(addDay, hour, min);
}
// It's Friday
else if ( day.day === 5 ) {
addDay = 1;
hour = 10;
countDown(addDay, hour, min);
}
// All that's left is Saturday
else {
if ( day.hour < 10 ) {
hour = 10;
countDown(addDay, hour, min);
} else {
addDay = 1;
hour = 8;
countDown(addDay, hour, min);
}
}
提前感谢您的帮助!