PHP ~ Проверьте, встречается ли дата в течение следующей (правильной) недели - PullRequest
0 голосов
/ 24 ноября 2018

Я искал это, и у меня есть решение, которое получает даты для понедельника и пятницы (только для рабочей недели) следующей недели, а затем проверяет, попадает ли моя дата в этот диапазон.Это работает.

<?php
$check_count = 0 ;
$check_date = 20181127 ;

if ( $check_date >= date ( 'Ymd' , strtotime ( 'monday next week' ) ) && 
    $check_date <= date ( 'Ymd' , strtotime ( 'friday next week' ) ) ) {

    // DATE IS NEXT WEEK
    echo 'Next week!' ;
    $check_count++ ;

}
?>

Но я хотел бы знать, есть ли однострочные сорта, которые могут взять дату ('Ymd') и посмотреть, произойдет ли это "на следующей неделе".

Любая помощь будет высоко ценится.

Спасибо, furi0usBee

1 Ответ

0 голосов
/ 25 ноября 2018

Привет furi0usBee и добро пожаловать в stackoverflow,

Вы можете немного сократить свой оператор if, используя функцию date_format для проверки номера недели ('W') и дня недели в ISO.( 'N').

Чтобы использовать функцию date_format, необходимо создать объект DateTime из даты Ymd:

<?php
$check_count = 0 ;
$check_date = 20181127 ;

$objDate = new DateTime($check_date);

if ( date('W', strtotime('monday next week')) == date_format($objDate, 'W') 
     && date_format($objDate, 'N') < 6  ) {

    // DATE IS NEXT WEEK
    echo 'Next week!' ;
    $check_count++ ;
} 
?>

Код выглядит немного чище с этим.

...