Как мне получить следующую дату по дням недели и времени - PullRequest
0 голосов
/ 15 января 2019

Я хочу получить следующую дату урока по дню недели и времени. Например, все занятия проводятся во вторник и субботу в 22:45. Поэтому я хочу отобразить дату следующего занятия, которое будет проводиться с текущего дня / времени.

Без времени я могу получить. Но что, если сегодня вторник, 4 часа дня, а класс - вторник, 10:45 вечера, тогда он должен показать мне сегодняшнюю дату, а не субботу, поскольку следующий урок после сегодняшнего дня - суббота.

Я пробовал тестовый код со временем, но он не работает.

$nextTuesday = strtotime('next tuesday 10:59PM');
echo date('Y-m-d', $nextTuesday);

Если я даю время, оно не работает.

Со временем должна отображаться текущая дата, если день совпадает, а время не прошло.

1 Ответ

0 голосов
/ 16 января 2019

Хорошо, я использовал свою логику и решил ее.

    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;
...