Каким образом можно получить следующую дату(unixtime), зная лишь день недели (пн, вт, ср и т.п.) и время?
Например, имеем пн 17:00, получаем дату следующего понедельника или же unixtime
Вид для печати
Каким образом можно получить следующую дату(unixtime), зная лишь день недели (пн, вт, ср и т.п.) и время?
Например, имеем пн 17:00, получаем дату следующего понедельника или же unixtime
SELECT UNIX_TIMESTAMP(DATE_ADD(CURDATE(), INTERVAL (6-WEEKDAY(CURDATE())+4) DAY)) AS 'day_of_next_week'
"CURDATE()" заменяешь на дату из gettime (ибо на MySQL-сервере может стоять другой часовой пояс).
"4" - это порядковый номер нужного дня недели, где "1" - понедельник, а "7" - воскресение
Спасибо. Самое забавное, что я сначала написал название в CamelCase и написал всё правильно (ибо помню как специально перечитывал и потом решил переименовать в более правильный вариант написания, уже заменив "w" на "v").
Ещё, к слову, можно написать функцию, создающую таблицу-календарь и уже использовать его. При частом или многократном определении следующей даты такой вариант, скорее всего, будет быстрее. К тому же, такая таблица может и в других системах пригодиться.
Такую функцию я тебе, собственно, уже даже давал готовую. Туда только столбец с днём недели дописать осталось.