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