Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оптимизация на js (https://javascript.ru/forum/misc/45500-optimizaciya-na-js.html)

HelpMe01 03.03.2014 21:54

Теперь вот какая проблема. Без проблем никуда))!
<html>
<head>
<title>закрытие по времени</title>
<script type="text/javascript">
window.onload = function() {
tm1 = window.setInterval(function() {
var elemDnm = document.getElementById("dnm");
now=new Date(); 
var hours=now.getHours() 
var days=now.getDay();
var min=now.getMinutes();   
var sec=now.getSeconds();                            
var text 
var myDate = '0';
var current = new Date;
var openofficehour=9;
var worktime=18;
   						    if (24-(24-hours+openofficehour-1)%24>worktime){
        					elemDnm.innerHTML = "<center><b>Офис<span style='color:red;font:16px Tahoma;'> <b>ЗАКРЫТ</b></span>, до открытия осталось<span style='color:orange;font:16px Tahoma;'><b> " +(24-hours+openofficehour)%24+ " часов</b></span></b></center>";
							}else{
							elemDnm.innerHTML = "<center><b>Офис<span style='color:green;font:16px Tahoma;'> <b>ОТКРЫТ</b></span><span style='color:orange;font:16px Tahoma;'><b></b></span></b></center>"
}, 5000); };
        </script>
</head>
<body>
<!-- content -->
<div id="dnm"><p>
    <center><b><span style='color:red;font:16px Tahoma;'>Загрузка...</span></b></center>
</p></div>
<!-- content -->
</body>
</html>


Вот целый скрипт. Нуууу вроде пока что держится))
Да не спорю она правильно показывает то время когда офис закрыт. Но почему она не будет показывать время когда она открыта??? Ну допустим до закрытия осталось сколько то часов

Zuenf 03.03.2014 22:05

Все очень криво у тебя и много лишнего например минуты, дни, секунды и другая ересь, зачем тебе?
Учись думать и читать.
Ты даже сам не подумав над проблемой, не попробовав ее решить, сюда пишешь.
Сравнил бы, чем отличается вывод, когда офис закрыт и когда он открыт, увидел бы, что там есть не сложное математическое выражение, немного поменяв которое, добился бы нужного результата.
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<div id="test"></div>
<script>
var testElem = document.getElementById('test'),
now = new Date().getHours(),
openofficehour = 11,
worktime = 12;
if(24-(24-now+openofficehour-1)%24>worktime){
testElem.innerHTML = "<center><b>Офис<span style='color:red;font:16px Tahoma;'> <b>ЗАКРЫТ</b></span>, до открытия осталось "+(24-now+openofficehour)%24+" часов<span style='color:orange;font:16px Tahoma;'><b></b></span></b></center>"
}else{
testElem.innerHTML = "<center><b>Офис<span style='color:green;font:16px Tahoma;'> <b>ОТКРЫТ</b></span>, до закрытия <span style='color:orange;font:16px Tahoma;'><b>(сколько?)</b></span> часов</b></center>"
}
</script>
</body>
</html>

HelpMe01 03.03.2014 22:07

Zuenf у тебя скрипт не будет автоматически обновляться. Допустим сейчас 23:59 и на сайте написано "Офис закрыт до открытия 12 часов" и я сижу на сайте, наступило 24:00 но на сайте так и будет стоять "Офис закрыт до открытия 12 часов". А чтобы результат поменялся на 11 часов я должен в ручную страницу обновить. Прочитай пожалуйста ниже


:help:

Сделайте пожалуйста оптимизированный скрипт кто нибудь. Если это возможно то и с минутами. Я ясно объясню что мне нужно. У нас есть офис и сайт. На сайте в боковом блоке должна выходить надпись там офис открыт до открытия/закрытия осталось сколько то часов и сколько то минут! Воскресенье выходной день. Чтобы так и писало))) Офис работает до 18:00 и открывается утром в 09:00. И мне надо чтобы скрипт обновлялся автоматически на подобии этой http://javascript.ru/forum/misc/4538...vremeni-2.html.
Вот там на второй странице отписался alex33 ну там написал document.write это зло и т.д. Вот под этот скрипт там автоматическое обновление причём не перезагружая странцу. Допустим я захожу в 23:59 и на сайте написано "Офис закрыт до открытия осталось 10 часов" И когда будет ровно 24:00 будет написано "Офис закрыт до открытия осталось 9 часов" При этом страница не обновляется это похоже на обратный отсчёт только с циклом). Но проблема в том что в скрипте alex33 очень много строчек, а я хочу чуть поменьше и чтобы работало точно так же. А если это возможно то и с минутами. Заранее спасибо тому кто это сможет сделать. Я новичок просто в Js поэтому никак не могу разобраться


Часовой пояс GMT +3, время: 13:04.