我有一个脚本,该脚本根据一周和一天中的时间显示不同的div。他效果很好。我需要修改它。我想每天设置不同的开放时间。我怎样才能做到这一点?请帮助。
示例
星期一从8:00到16:00开放
星期二从8:00到16:00开放
周三从8:00到18:00开放
周四从8:00到18:00开放
星期五从8:00到16:00开放
周六关闭
周日从8:00到13:00开放
我的脚本:
var d = new Date();
var dayOfWeek = d.getDay();
var hour = d.getHours();
var mins = d.getMinutes();
var status = 'open';
if (dayOfWeek !== 6 && dayOfWeek !== 0 && hour >= 9 && hour <= 15){
if (hour=='9' && mins < '00'){
status = 'closed';
}else if (hour=='15' && mins > '30'){
status = 'closed';
}else{
status = 'open';
}
}else{
status = 'closed';
}
if (status=='open') {
$('.hours').show();
$('.closed').hide();
}else{
$('.hours').hide();
$('.closed').show();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hours">We are OPEN</div>
<div class="closed">We are CLOSED</div>
使用二维数组
// Example days
var days = [[9, 15],[8, 14],[7, 13],[6,12],[5,11],[0,0],[0,0]];
每天使用[0,0]被视为完全关闭。并将IF语句编辑为
if (hour >= days[dayOfWeek][0] && hour < days[dayOfWeek][1]){ //..
您可以构造一个数组来表示一周中的每一天,并在其中包含开放/关闭时间。
另外,我会更改您的"状态"变量以存储布尔值,而不是字符串,因为它有效地回答了一个"是或否"问题 - 为什么不只是称其为"打开"并使其值为TRUE或FALSE?尼特·皮克(Nit Picky),但这种方式更正确。字符串比较很笨拙。
var openHours = [
{
openHour: 8,
openMinute: 0,
closeHour: 13,
closeMinute: 0
},
{
openHour: 9,
openMinute: 0,
closeHour: 17,
closeMinute: 30,
},
{
openHour: 9,
openMinute: 0,
closeHour: 17,
closeMinute: 30,
},
{
openHour: 9,
openMinute: 0,
closeHour: 17,
closeMinute: 30,
},
{
openHour: 9,
openMinute: 0,
closeHour: 17,
closeMinute: 30,
},
{
openHour: 9,
openMinute: 0,
closeHour: 17,
closeMinute: 30,
},
{
openHour: -1,
openMinute: -1,
closeHour: -1,
closeMinute: -1,
}
];
var d = new Date();
var dayOfWeek = d.getDay();
var hour = d.getHours();
var mins = d.getMinutes();
var open = true;
var todayHours = openHours[dayOfWeek];
if (hour >= todayHours.openHour && hour <= todayHours.closeHour) {
if ((hour==todayHours.openHour && mins < todayHours.openMinute) || (hour==todayHours.closeHour && mins > todayHours.closeMinute)) {
open = false;
} else {
open = true;
}
} else {
open = false;
}
if (open) {
$('.hours').show();
$('.closed').hide();
} else {
$('.hours').hide();
$('.closed').show();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hours">We are OPEN</div>
<div class="closed">We are CLOSED</div>
您可以将日程安排放在数组和jsut检查日子中,并检查当前时间是否在阵列中的开始时间和结束时间