如何在 PHP 中比较单个日期和多个日期

Posted

技术标签:

【中文标题】如何在 PHP 中比较单个日期和多个日期【英文标题】:How to compare single date with multiple dates in PHP 【发布时间】:2014-08-07 10:02:18 【问题描述】:

如何在 php 中比较两个日期? 我有以下日期。一个来自 DB。另一个来自 Datepicker

$dbdate = 01-06-201402-06-201403-04-201405-06-2014 //DB date 
$datepickerDate = 06-06-2014 //Datepicker date.

这里$dbdate 在 foreach 循环中,两种格式都是 dd-mm-yyyy。如何将 datepicker 中的单个日期与 $dbdate 中的日期进行比较?

【问题讨论】:

那么,$dbdate 是日期的串联? 循环比较还是 $dbdate 是一个包含多个日期的字符串? 信息不足。展示您迄今为止尝试过的内容? 是的 $dbdate 有日期的串联... 【参考方案1】:

与 STRTOTIME 这样的 for 循环中的函数进行比较

return STRTOTIME($dbdate) === STRTOTIME($datepickerDate);

【讨论】:

或者你可以做return STRTOTIME($dbdate) === STRTOTIME($datepickerDate); @Jerodev 感谢您的建议【参考方案2】:

最好的办法是全部转换为 unix 时间戳.. php 方法是 strtotime() 然后它返回整数值...你可以比较这些值 http://www.php.net//manual/en/function.strtotime.php 但问题是你的 dbdate 一次解析超过 1 个日期。你应该一次得到 1 个日期

【讨论】:

【参考方案3】:

这不是一个理想的解决方案 - 但我希望它可以帮助你;-)。

<?php
// Input
$dbdate = '01-06-201402-06-201403-04-201405-06-2014';
$datepickerDate = '06-06-2014';

// Please note: it would be possible to check dates directly in this for loop.
// For educational purposes I splitted it.

$datepickerDateTime = strtotime($datepickerDate);

// Transform concatenated dates to separate dates in array.
$datesList = array();
$dateOffset = 10;
for($iCurrentDateOffset = 0; $iCurrentDateOffset < strlen($dbdate); $iCurrentDateOffset += $dateOffset) 
    $datesList[] = substr($dbdate, $iCurrentDateOffset, $dateOffset);


// Compare each separate date to $datepickerDate
foreach($datesList as $date) 
    if(strtotime($date) < $datepickerDateTime) 
        echo("$date is before $datepickerDate<br />");
     else if(strtotime($date) == $datepickerDateTime) 
        echo("$date is equal to $datepickerDate<br />");
     else if(strtotime($date) > $datepickerDateTime) 
        echo("$date is past $datepickerDate<br />");
    


// ...

输出是:

01-06-2014 早于 06-06-2014 02-06-2014 早于 06-06-2014 03-04-2014 早于 06-06-2014 05-06-2014 早于 06-06-2014

【讨论】:

以上是关于如何在 PHP 中比较单个日期和多个日期的主要内容,如果未能解决你的问题,请参考以下文章

用php在mysql中,如何截取最大日期和最小日期

如何使单个 UISegmentedControl 部分检测多个触摸

PHP MySQL 日期差异

如何使用 php 读取 zip 文件的创建日期

如何使用plotly js在y轴上为单个x轴值(可能是日期)绘制两个点

php/Codeigniter——如何通过排除时间来仅比较日期