javascript нужен маленький хелп

12 3
traktor
На сайте с 08.11.2007
Offline
114
1206

Здравствуйте.

Помогите нубу.

Есть код скрипта который в разное время суток выводит определённый текст.

Но в нём промежутки времени определены исключительно часами.

Как реализовать в условии минуты? Например чтобы Доброе утро показывало не с 5 до 12 часов, а с 5:15 до 12:45 ?

Спасибо.

var date = new Date();
var hour = date.getHours();
if (hour>=5 && hour<12) greeting = "Доброе утро"; else {
if (hour>=12 && hour<18) greeting = "Добрый день"; else {
if (hour>=18 && hour<24) greeting = "Добрый вечер"; else {
if (hour>=0 && hour<5) greeting = "Доброй ночи"; }
}
}
document.write(greeting);
Gerga
На сайте с 02.08.2015
Offline
94
#1
traktor:
Как реализовать в условии минуты? Например чтобы Доброе утро показывало не с 5 до 12 часов, а с 5:15 до 12:45 ?


var minute = date.getMinutes();

if ( ( hour>5 || ( hour==5 && minute>=15 )) && ( hour<12 || ( hour==12 && minute<=45 )) ) {
greeting = "Доброе утро";
}
R
На сайте с 31.08.2010
Offline
78
#2

Gerga, а где у него переменная minute в вашем ответе? Тут ещё вопрос я так понимаю заключается в том, что человек не знает как узнать сколько минут т.е. как получить это значение минуты, а знает только как получить часы.

Gerga
На сайте с 02.08.2015
Offline
94
#3

Rokkkin, я же полагаю, человеку немного не понятно как правильно сконструировать условие. Переменную забыл объявить, исправил.

R
На сайте с 31.08.2010
Offline
78
#4

Gerga, вот это вообще тогда не обязательно

hour>5 ||
hour<12 ||

лучше сразу писать

hour==5 && minute>=15
hour==12 && minute<=45

я так понимаю две вертикальные черты в джаваскрипте обозначают или (or) в обычном языке программирования

лучше уж тогда сразу писать если надо чтоб доброе утро выводилось только с 5.15 и до 12.45, а так получается что или, или то или это, то бишь будет выводиться при больше 5, то бишь в 5:04 будет выводиться тоже

Gerga
На сайте с 02.08.2015
Offline
94
#5
Rokkkin:
hour==5 && minute>=15
hour==12 && minute<=45

и при каких условиях будет true, а при каких false? В шесть будет ли сообщение "Доброе утро"?

---------- Добавлено 22.07.2016 в 22:20 ----------

Rokkkin:
я так понимаю две вертикальные черты в джаваскрипте обозначают или (or) в обычном языке программирования

не только в JavaScript таким образом можно выполнить дизъюнкцию

Rokkkin:
лучше уж тогда сразу писать если надо чтоб доброе утро выводилось только с 5.15 и до 12.45, а так получается что или, или то или это, то бишь будет выводиться при больше 5, то бишь в 5:04 будет выводиться тоже

Ничего подобного, проверьте сами очно или почитайте, вам это не повредит.

R
На сайте с 31.08.2010
Offline
78
#6

Думал сначала переделать и написать так:

hour>=5 && minute>=15

hour<=12 && minute<=45

Но потом передумал. Всю логику не продумал, в 6:10 например не выведется, также как и в 7:01, только в 6:15 и 7:15 и дальше.

Все правильно в принципе написано, что время больше пяти, то бишь 6, 7, 8 и т.д. то выводим сообщение, но если равно пяти, тогда ещё доп условие что минут больше пятнадцати должно быть иначе истины не будет, надо коньюнкцию с дизъюнкцией изучать.

Также само и в 11:46 не выведется ибо время меньше двенадцати, то бишь например 11 и минут меньше чем 45, т.е. в 11:50 также не выведется. только потом в 12, также и в 10:48 выполняться не будет.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#7

Открою вам секрет, можно делать несколько IF, от этого никто не пострадает :)

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Gerga
На сайте с 02.08.2015
Offline
94
#8

traktor, никого не слушайте, условие отсюда отлично решает вашу задачу :) , https://jsfiddle.net/webxz/nccjg9bf/

LEOnidUKG:
Открою вам секрет, можно делать несколько IF, от этого никто не пострадает

Неа, так не интересно :)

R
На сайте с 31.08.2010
Offline
78
#9
Открою вам секрет, можно делать несколько IF, от этого никто не пострадает

Ну да, можно например так:

if(hour==5 && minute>=15){

alert('Доброе утро!');

}

if( (hour>=6) && (hour<=12 && minute<=45) ){

alert('Доброе утро!');

}

ТС, мы знатоки серча справились с вашей задачей?🤪

Gerga
На сайте с 02.08.2015
Offline
94
#10

Rokkkin, ваша конструкция опять не правильна))) имелось ввиду что-то подобное


if <условие1> {
if <условие2> {
доброе утро
}
}
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий