Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как изменять значение переменной в зависимости от локального времени. (https://javascript.ru/forum/misc/64032-kak-izmenyat-znachenie-peremennojj-v-zavisimosti-ot-lokalnogo-vremeni.html)

Allina 16.07.2016 06:55

Как изменять значение переменной в зависимости от локального времени.
 
Здравствуйте.
Подскажите, пожалуйста, как записать следующие условия
Если текущее время от 2:00 до 5:30 то переменная _doom =3;
Если текущее время от 8:00 до 11:30 то переменная _doom =5;
Иначе _doom =9;
var sTime,
    hours,
    minutes,
    _doom;
   
    sTime = new Date(data);
    hours = sTime.getHours();
    minutes = sTime.getMinutes();
    if(hours >= 2 || hours <= 5 && minutes<=30 )
     {
	_doom=3;
      }
 else
     if(hours >= 8 || hours <= 11 && minutes<=30)
     {
	_doom=5;
      }
  else _doom=9;


Что не правильно?

Decode 16.07.2016 09:46

Allina,
var sTime = new Date();
var hours = sTime.getHours();
var minutes = sTime.getMinutes();
var _doom = 9;

if (hours >= 2 && sTime < new Date(sTime.getFullYear(), sTime.getMonth(), sTime.getDate(), 5, 30)) {
  _doom = 3;
}

if (hours >= 8 && sTime < new Date(sTime.getFullYear(), sTime.getMonth(), sTime.getDate(), 11, 30)) {
  _doom = 5;
}

console.log(_doom);

Allina 16.07.2016 10:05

Decode, Спасибо.

Allina 18.07.2016 17:59

Значения переменных не меняются в назначенное время.
В чём причина?
Скрипт работает в консоли, браузер Firefox
var sTime = new Date();
var hours = sTime.getHours();
var minutes = sTime.getMinutes();
var _do = 900;
var _ot = 300;


if (sTime>= new Date(sTime.getFullYear(), sTime.getMonth(), sTime.getDate(), 2, 10)
&& sTime < new Date(sTime.getFullYear(), sTime.getMonth(), sTime.getDate(), 2, 15)){
  _do = (2 * 60 * 1000);// 2 min
_ot = (1 * 60 * 1000);// 1 min
}

if (sTime>= new Date(sTime.getFullYear(), sTime.getMonth(), sTime.getDate(), 2, 15)
&& sTime < new Date(sTime.getFullYear(), sTime.getMonth(), sTime.getDate(), 2, 20)) {

  _do = (30  * 1000);// 30 sec
_ot = (10 *  1000);// 10 sec

}

console.log(_do);


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