我使用以下JavaScript查看業務是否基於營業時間打開。它非常簡單,而且效果很好,但是我怎樣才能在凌晨0點或凌晨1點的午夜時分開始工作。不幸的是它只適用於像17倍:00-23:00,但不是17:00-030:如何使這個javascript與午夜營業時間一起工作?
var d = new Date();
var n = d.getDay();
var now = d.getHours() + "." + d.getMinutes();
var weekdays = [
["Sunday", 9.30, 12.00, 15.30,22.00],
["Monday", 8.30, 12.00, 15.30,19.00],
["Tuesday", 8.30, 12.00, 15.30,19.00],
["Wednesday", 8.30, 12.00, 15.30,19.00],
["Thursday", 8.30, 12.00, 15.30,19.00],
["Friday", 8.30, 11.30],
["Saturday"] // we are closed, sorry!
];
var day = weekdays[n];
if (now > day[1] && now < day[2] || now > day[3] && now < day[4]) {
console.log("We're open right now!");
}
else {
console.log("Sorry, we're closed!");
}
我知道這個腳本不支持時區,但這個ISN這對我來說並不重要,因爲這隻適用於與客戶始終處於同一時區的本地業務。
在此先感謝。 PS:最初的劇本是從這裏計算器Javascript Store Opening Hours
更新版本另一篇文章中,我改變了腳本,因爲我使用火力JSON數據並獲得已爲這一天的時間,所以我不需要與天陣。
<script>
var d = new Date();
var n = d.getDay();
var now = d.getHours() + "." + d.getMinutes();
// this is what I get from firebase already
// so I dont need to loop throught the days but throught the 2 different opening times.
var day = {
"from": 8.30,
"to": 10,
"from2": 14.30,
"to2": 23
};
console.log('Now: ' + now);
if (now > day.from && now < day.to || now > day.from2 && now < day.to2) {
console.log("We're open right now!");
} else {
console.log("Sorry, we're closed!");
}
</script>
如果我有類似17:00-01:00的東西,這怎麼辦?
THX您的回覆也考驗。我對momentjs有不好的經驗,因爲ios上的結果與我在android或瀏覽器上的結果不同。我想避免使用像momentjs或時區等額外的JavaScript的原因。我也想盡可能保持簡單。 – Oliver