Показать сообщение отдельно
  #1 (permalink)  
Старый 17.07.2013, 10:18
Новичок на форуме
Отправить личное сообщение для DeeMCee Посмотреть профиль Найти все сообщения от DeeMCee
 
Регистрация: 17.07.2013
Сообщений: 2

Вывод изображения по будним дням
Доброго дня!

Появилась потребность вывода изображения из корпоративной столовой.

Но есть требование:
Изображение должно отображаться только с 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>


Но он не работает.

Если знаете способ решения проблемы или поможете разобраться в этом коде, буду безгранично признателен! Спасибо Вам заранее!
Ответить с цитированием