Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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>


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

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

<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>
Ответить с цитированием
  #3 (permalink)  
Старый 17.07.2013, 10:32
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

написали, написали.. а толку то?? ваша задача реализовывается в 4 строчки..
var date = new Date();
var dn = date.getDay();
var hour = date.getHours();
console.log((hour >= 12 && hour <= 15 && dn < 6) ? 'показать' : 'фиг вам');
Ответить с цитированием
  #4 (permalink)  
Старый 17.07.2013, 10:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

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>
Ответить с цитированием
  #5 (permalink)  
Старый 17.07.2013, 11:13
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

сори, забыл что вс - 0.. тогда можно так:
console.log((hour >= 12 && hour <= 15 && (dn > 0 && dn < 6)) ? 'показать' : 'фиг вам');
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение рабочей области изображения pagemaster Общие вопросы Javascript 19 15.04.2013 18:06
Расчет реальных размеров изображения в галерее Vision Элементы интерфейса 7 10.07.2012 21:56
Проблема: Jquery - эффект раскрытия LightBox для изображения. woody2 jQuery 0 16.09.2011 00:10
Вывод изображения на печать. can2zia Events/DOM/Window 0 10.01.2011 14:39
Вывод части изображения Rau1 Общие вопросы Javascript 2 22.02.2009 02:57