Вывод изображения по будним дням
Доброго дня!
Появилась потребность вывода изображения из корпоративной столовой. Но есть требование: Изображение должно отображаться только с 12:00 до 15:00 и только по будним дням. JavaScript я не знаю совсем, весь Google перерыл. Единственное что удалось раздобыть, так это вот такой код: <SCRIPT language=JavaScript> var timer=0; var refreshrate=6;// var image; var imgwidth=640; var imgheight=480; var today; var status=0; function refresh(){ // alert("Refresh function"); today = new Date(); document.images["pic"].src=image+"?"+today; document.all.dateLabel.innerHTML ="<br> Последнее обновление: " + today.toLocaleTimeString() + " " + today.toLocaleDateString(); //proc(); //setTimeout('refresh();', refreshrate*1000); } //document.write('<img src="'+image+'" height="'+imgheight+'" width="'+imgwidth+'" name="pic">'); //if(document.images) window.onload=refresh; // if(document.images) window.onload=proc(); if(navigator.appName=="Microsoft Internet Explorer"){ document.getElementById("mainTable").style.display = ""; if(document.images) window.onload=proc; } else alert("Для просмотра веб-части \"Камера в столовой\" воспользуйтесь обозревателем \"Microsoft Internet Explorer\"!\n\nЕсли Вы считаете, что данное сообщение ошибочно, обратитесь к администратору портала!"); function getBeforeTime(){ //alert("GetBeforeTime"); var dDays, dHours, dMinutes, dSeconds, ost; var flag; var nowTime = new Date; var openTime; var MsgStr=""; if (nowTime.getHours()<12) { switch(nowTime.getDay()){ case 6: //суббота var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate()+2,12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); break case 0: //воскресенье var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate()+1,12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); break default: var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate(),12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); } } if (nowTime.getHours() >= 12 && nowTime.getHours() < 15){ switch(nowTime.getDay()){ case 6: //суббота var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate()+2,12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); break case 0: //воскресенье var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate()+1,12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); break default: status = 2; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate(),15,00,00,00); image="file://1005nas/camera/1.jpg"; } } if (nowTime.getHours()>= 15){ switch(nowTime.getDay()){ case 5: //пятница var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate()+3,12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); break case 6: //суббота var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate()+2,12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); break default: var prevStatus = status; status = 1; ctrlTime = new Date(nowTime.getFullYear(),nowTime.getMonth(),nowTime.getDate()+1,12,00,00,00); image="file://1005nas/camera/switchedOff.jpg"; if(prevStatus!=status) refresh(); } } //status = 0; if (status == 0) alert ("При открытии страницы произошла ошибка!\nТаймер отсчета времени до закрытия/открытия столовой работает неправильно\nПожалуйста, обратитесь к администратору портала по номеру 0422!"); //openTime = new Date(nowTime.getFullYear(),nowTime.getMonth()+1,nowTime.getDate()+1,12,00,00,00); //alert(nowTime.getDate()); var DTimeMs = ctrlTime - nowTime; var DTimeSec = DTimeMs/1000; dDays = DTimeSec/(24*60*60); ost = DTimeSec%(24*60*60); dHours = ost/(60*60); ost = ost%(60*60); dMinutes = ost/60; dSeconds = ost%60; if (status == 1) MsgStr += "<b>До открытия</b> столовой осталось: "; if (status == 2) MsgStr += "<b>До закрытия</b> столовой осталось: "; flag = 0; if (parseInt(dDays)!=0) { MsgStr += parseInt(dDays) + " дн. "; flag = 1; } if (flag == 1) MsgStr += parseInt(dHours) + " ч "; else if (parseInt(dHours)!=0) MsgStr += parseInt(dHours) + " ч "; MsgStr += parseInt(dMinutes) + " мин " + parseInt(dSeconds) + " сек"; document.getElementById("beforeTimer").innerHTML = MsgStr; //setTimeout('getBeforeTime()',2000); } function proc(){ getBeforeTime(); if(timer % refreshrate == 0 || timer == 0) if(status==2) refresh(); timer++; date=new Date; //document.getElementById("testLabel").innerHTML=timer+" "+date+"<br>"; //document.write(str); setTimeout('proc();', 1000); } </SCRIPT> Но он не работает. Если знаете способ решения проблемы или поможете разобраться в этом коде, буду безгранично признателен! Спасибо Вам заранее! |
<TABLE id=mainTable style="DISPLAY: none" cellSpacing=0 cellPadding=0 align=center border=0> <TBODY> <TR> <TD colSpan=3><IMG src="file://1005nas/camera/img/top.gif"></TD></TR> <TR> <TD><IMG src="file://1005nas/camera/img/left.gif" height=484></TD> <TD vAlign=top width=640> <DIV style="POSITION: relative; Z-INDEX: 11"><IMG name=pic alt=Загрузка...> </DIV> <DIV style="POSITION: absolute; Z-INDEX: 12"> <TABLE style="BACKGROUND-COLOR: transparent" width="100%" border=0> <TBODY> <TR> <TD id=dateLabel style="COLOR: white" align=center></TD><!--<td width="90" align="center"><img src="file://1005nas/camera/img/logo.gif"></td>--></TR></TBODY></TABLE></DIV></TD> <TD><IMG src="file://1005nas/camera/img/right.gif" height=484></TD></TR> <TR> <TD colSpan=3><IMG src="file://1005nas/camera/img/bottom.gif"></TD></TR> <TR> <TD id=beforeTimer style="COLOR: white" colSpan=3 align=center></TD></TR> <TR> <TD id=testLabel colSpan=3 align=center><!--<br>тест:<br>___________________________________<br>--></TD></TR></TBODY></TABLE> |
написали, написали.. а толку то?? ваша задача реализовывается в 4 строчки..
var date = new Date(); var dn = date.getDay(); var hour = date.getHours(); console.log((hour >= 12 && hour <= 15 && dn < 6) ? 'показать' : 'фиг вам'); |
skrudjmakdak,
на всякий случай 21 июля воскресенье <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <script> var date = new Date(2013,6,21,13); var dn = date.getDay(); var hour = date.getHours(); alert([date.toLocaleString(),(hour >= 12 && hour <= 15 && dn < 6) ? 'показать' : 'фиг вам']); //alert([date.toLocaleString(),(hour >= 12 && hour <= 15 && dn < 6 && dn) ? 'показать' : 'фиг вам']); </script> </body> </html> |
сори, забыл что вс - 0.. тогда можно так:
console.log((hour >= 12 && hour <= 15 && (dn > 0 && dn < 6)) ? 'показать' : 'фиг вам'); |
Часовой пояс GMT +3, время: 17:55. |