在php中比较日期和月份


Comparing day and month in php

晚上好!

问题:问题是在PHP中比较两个日期。我只想比较日期和月份,不包括年份。如果月份与当前月份相同或小于当前月份,我希望代码首先检查该月份。如果这是真的,请继续查看当天的情况。如果日期等于或小于当前日期,则执行自定义代码。

我尝试过的:这是我到目前为止的进展-

<?php
$oldDate = "26/02/1815";
$latestDate = explode("/", $oldDate);
$year = $latestDate[2];
$month = $latestDate[1];
$day = $latestDate[0];
$newDate = $month.'/'.$day.'/'.$year;
$nowDate = date('m/d/Y');
$nownowDate = explode("/", $nowDate);
$nowYear = $nownowDate[2];
$nowMonth = $nownowDate[0];
$nowDay = $nownowDate[1];
if ($nowMonth <= $month) {
    if ($nowDay <= $day) {
        echo<<<NEXTDATE
        <li class="next"><?php echo link_to_next_item_show(); ?></li> //This is the custom code
NEXTDATE;
    } 
} 
?>

我觉得我的国际单项体育联合会的声明有问题。

来源:优雅的方式来计算两次约会之间的月数?

$timezone = new DateTimeZone('America/New_York'); 
$d1 = new DateTime("1815-02-26", $timezone);
$d2 = new DateTime("2015-01-01", $timezone);
var_dump($d1->diff($d2)->m); // int(4)
var_dump($d1->diff($d2)->d); // int(4)
if(($d1->diff($d2)->m) && ($d1->diff($d2)->d)){
   echo "run code here";
}

不能将<?php标记放在heredoc中。所以,你可以不用heredoc:

echo '<li class="next">' . link_to_next_item_show() . '</li>';

感谢大家尽最大努力解决这个问题。也许我没有说清楚,这就是为什么你们中的一些人在挣扎,试图理解我在说什么。

我试着用switch来解决这个问题,所以下面是对我有效的答案

<?php 
$oldDate = metadata('item', array('Dublin Core', 'Date')); 
$latestDate = explode("/", $oldDate);
$year = $latestDate[2];
$month = $latestDate[1];
$day = $latestDate[0];
$newDate = $month.'/'.$day.'/'.$year;
$nowDate = date('m/d/Y');
$nownowDate = explode("/", $nowDate);
$nowYear = $nownowDate[2];
$nowMonth = $nownowDate[0];
$nowDay = $nownowDate[1];
switch (true):
  case ($month == $nowMonth):
    if ($day < $nowDay) {
      echo '<li class="next">' . link_to_next_item_show() . '</li>';
    } else {
      echo " ";
    }
    break;
  case ($month < $nowMonth):
    echo '<li class="next">' . link_to_next_item_show() . '</li>';
    break;
  case ($month > $nowMonth):
    echo " "; 
    break;
  default :
    echo " ";
    break;
endswitch;
?>

感谢@developerwik对在heredoc中使用php标记的更正。现在我知道代码出了什么问题。我提供这个答案是为了让其他人从中受益,如果他们试图在两个日期之间进行比较(仅在日期和月份之间进行比较,无论年份如何)。希望这对将来的其他人有用。