【问题标题】:How to compare single date with multiple dates in PHP如何在 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 有日期的串联...

标签: php jquery mysql datepicker


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      相关资源
      最近更新 更多