PHP检查日期是否在当前周

时间:2015-05-31 10:10:34

标签: php wordpress

我使用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';
}

这对我来说是假的 如果我使用

  'm-d' in $cdate variable 

如果使用Y-m-d,它可以正常工作 但在这种情况下,年份应该是相同的,因为所有人都有不同的出生年份

4 个答案:

答案 0 :(得分:11)

这是我的方式

要找到它,你可以这样做

第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,那么它属于Else Not

所以,最后你要拥有的代码是

<?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 !!!";  
}  
?>

注意

  1. 您可以拥有自己的开始日,即SundayMonday

  2. 您可以拥有自己的日期或当前日期

答案 1 :(得分:4)

您可以使用格式参数W,它将为您提供当年弱势数(日历周)的数量。

if(date("W") == date("W", $birthday)){
    // User has birthday this week
}

$birthday必须是时间戳。也许你必须使用$birthday = strtotime($birthdate);

答案 2 :(得分:0)

在我看来,最简单的解决方案是将字符串传递给日期并将它们保存为数字,如本例所示:

$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';
}

当然,您必须将生日年份更改为当前年份。

答案 3 :(得分:0)

理查德的回答很明显。只为那些到达这篇文章的人寻找如何检查一周是相同的,并检查年份是否相同;这也将检查它们不仅在一年中的同一周,而且也在同一年。

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