Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с календарем (https://javascript.ru/forum/misc/69197-rabota-s-kalendarem.html)

Emil12345 05.06.2017 13:25

Работа с календарем
 
Есть блок div
размером 100 на 100
Если сегодня понедельник, вторник, среда или четверг, и время с 17:00 до 23:00, или пятница, суббота или воскресенье и время с 17:00 до 00:00 То он зеленый,
иначе он красный.
Как это сделать?

ksa 05.06.2017 13:40

Цитата:

Сообщение от Emil12345
Как это сделать?

Как вариант завести массив объектов такого вида

[
   <день_недели>: {tStart: <время_начала>, tStop: <время_окончания>, color: <код_цвета>}
]

Потом по текущей дате узнавать тот день недели... По текущему времени проверять попадание в интервал...
Если попали - брать нужный код цвета.

Emil12345 05.06.2017 13:47

Спасибо большое

laimas 05.06.2017 14:32

Цитата:

Сообщение от ksa
Как вариант завести массив объектов

Не надо никакого массива. Воскресенье, это 0, суббота - 6. Следовательно хватит условия:

(!(day % 6) && time >= 1020 || !time) || time >= 1020 && time <=  1380 ? "green" : "red"

j0hnik 05.06.2017 15:37

<head>
	<meta charset="utf-8">
</head>
<body>
	<style>
		#id{
			width: 100px;
			height: 100px;
			background-color: red;
	</style>
	<div id="id"></div>
	<script>
	var now = new Date();
	if (now.getHours()>=17 && now.getHours()<23 || (now.getDay()==0 || now.getDay()==5 || now.getDay()==6) && now.getHours()>=17 ) document.getElementById("id").style.backgroundColor ="green";
	</script>
</body>

рони 05.06.2017 15:39

Цитата:

Сообщение от j0hnik
now.getDay()==(0||6||5)

:blink:

laimas 05.06.2017 15:40

Цитата:

Сообщение от j0hnik
now.getHours()>=17 && now.getHours()<23

А верно ли?

j0hnik 05.06.2017 15:44

Цитата:

Сообщение от laimas (Сообщение 454566)
А верно ли?

Да ;)

j0hnik 05.06.2017 15:45

Цитата:

Сообщение от рони (Сообщение 454565)
:blink:

Так нельзя записывать?

laimas 05.06.2017 15:46

Цитата:

Сообщение от j0hnik
Да

А если подумать?


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