繁体   English   中英

用PHP比较日期和月份

[英]Comparing day and month in php

晚上好!

问题:问题是比较PHP中的2个日期。 我只想比较日期和月份,不包括年份。 我希望代码首先检查月份,如果月份等于或小于当前月份。 如果是这样,请继续检查日期。 如果日期等于或小于当前日期,请执行自定义代码。

我已经尝试过的:这是到目前为止我能到达的地方-

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

我认为我的IF声明有问题。

来自: 获得两个日期之间的月数的优雅方法?

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

?>

感谢@developerwjk在heredoc中使用php标签的更正。 现在,我知道代码出了什么问题。 我将此作为答案,以便其他人在尝试比较两个日期(仅比较日期和月份,而不考虑其年份)时将从中受益。 希望将来对其他人有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM