PHP проверяет, находятся ли даты на текущей неделе
Я использую WordPress в качестве моей CMS. Я пытаюсь проверить, есть ли у некоторых из моих пользователей день рождения на текущей неделе. без успеха.
вот мой код
$fd = date("Y-m-d",strtotime('monday this week')); 
$ld = date("Y-m-d",strtotime("sunday this week"));
$cdate = date('m-d',time()); 
if (($cdate >= $fd)  && ($cdate <= $ld)) {
echo 'true';
} else {
echo 'false';
}
Это возвращает false для меня Если я использую
  'm-d' in $cdate variable 
Он отлично работает, если используется Y-m-d но в этом случае годы должны быть одинаковыми , что невозможно, так как у всех людей разные годы рождения
4 ответов
вот мой путь
, чтобы найти его, вы можете сделать такой
Шаг 1 :
найти начало и последний день недели
$FirstDay = date("Y-m-d", strtotime('sunday last week'));  
$LastDay = date("Y-m-d", strtotime('sunday this week'));  
Шаг 2 :
смотрите, если данная дата находится между началом и последним днем недели
  if($Date > $FirstDay && $Date < $LastDay) {
       echo "It is Between";
    } else {
        echo "No Not !!!";  
    } 
если
Yesтогда это принадлежит ElseNot
Итак, наконец, код, который вы должны иметь
<?php
$Date = "2015-06-01"; #Your Own Date
$Date = date('Y-m-d'); #Or Current Date Fixed here
$FirstDay = date("Y-m-d", strtotime('sunday last week'));  
$LastDay = date("Y-m-d", strtotime('sunday this week'));  
if($Date > $FirstDay && $Date < $LastDay) {
   echo "It is Between";
} else {
    echo "No Not !!!";  
}  
?>
Примечание
- вы можете иметь свой собственный день начала, т. е. - Sundayили- Monday
- вы можете иметь свою собственную дату или текущую дату 
вы можете использовать параметр format W, который даст вам номер текущего слабого в году (неделя календаря).
if(date("W") == date("W", $birthday)){
    // User has birthday this week
}
$birthdayздесь должна быть временная метка. Возможно, вам придется использовать $birthday = strtotime($birthdate);.
на мой взгляд, самое простое решение-передать строки на дату и сохранить их как число, как вы можете видеть в этом примере:
$fd = strtotime('monday this week'); // First date
$ld = strtotime('sunday this week'); // last date
$birthday_date = strtotime('YYYY-mm-dd'); // Birthday date
if (($birthday_date > $fd) && ($birthday_date < $ld)) {
  echo 'true';
} else {
  echo 'false';
}
конечно, вам придется изменить Год рождения на текущий.
ответ Ричарда находится на месте. Просто для людей, которые достигают этого поста, ища, как проверить неделю, то же самое, а также проверить, что год тот же; это также проверит, что они не только в ту же неделю года, но и в том же году.
$testData = "1447672336";
if((date("W") == date("W", $testData)) && (date("Y") == date("Y", $testData))){
    // The timestamp in $testData is the same week of the same year as today is.
}
