Я хочу получить следующую дату урока по дню недели и времени. Например, все занятия проводятся во вторник и субботу в 22:45.
Поэтому я хочу отобразить дату следующего занятия, которое будет проводиться с текущего дня / времени.
Без времени я могу получить. Но что, если сегодня вторник, 4 часа дня, а класс — вторник, 10:45 вечера, тогда он должен показывать мне сегодняшнюю дату, а не субботу, поскольку следующий урок после сегодняшнего дня — суббота.
Я пробовал тестовый код со временем, но он не работает.
$nextTuesday = strtotime('next tuesday 10:59PM');
echo date('Y-m-d', $nextTuesday);
Если я даю время, оно не работает.
Со временем должна отображаться текущая дата, если день совпадает, а время не прошло.
Хорошо, я использовал свою логику и решил ее.
date_default_timezone_set("ET");
$currentday=date('Y-m-d H:i:s');
$currentdayW=date("l", strtotime($currentday));
if (($currentdayW=="Tuesday") ||($currentdayW=="Friday"))
{
$chktime = date('Y-m-d 21:00:00');
if ($chktime > $currentday) { $drawdate = $chktime;}
}
if ((($currentdayW=="Tuesday") && ($chktime < $currentday)) ||
($currentdayW=="Wednesday") || ($currentdayW=="Thursday"))
{
$drawdate = strtotime('next friday');
$drawdate=date('Y-m-d 21:00:00', $drawdate);
}
if ((($currentdayW=="Friday") && ($chktime < $currentday)) ||
($currentdayW=="Saturday") || ($currentdayW=="Sunday") ||
($currentdayW=="Monday"))
{
$drawdate = strtotime('next tuesday');
$drawdate=date('Y-m-d 21:00:00', $drawdate);
}
echo $drawdate;
Других решений пока нет …