【问题标题】:Comparing dates in php in differring formats比较php中不同格式的日期
【发布时间】:2014-06-02 09:59:29
【问题描述】:

PHP 5.3.3。

$olddate = '2014-04-30';
$newdate = '30/05/2014';

有没有一种简单的方法来比较这些日期(哪个是最近的),而无需操作字符串或更改一种字符串格式?

我正在寻找一两个班轮?

【问题讨论】:

    标签: php date compare


    【解决方案1】:

    您不能将值作为字符串进行比较。

    您可以使用 \DateTime 对象或将此时间转换为整数(时间戳),然后进行下一次比较。

    $oldDate = \DateTime::createFromFormat('Y-m-d', $oldDate);
    $newDate = \DateTime::createFromFormat('d/m/Y', $newDate);
    
    if ($newDate > $oldDate) {
      // Your action
    } else {
      // Your action
    }
    

    【讨论】:

      【解决方案2】:

      使用strtotime,它足够聪明,可以在常见情况下自动解析字符串。根据documentation

      m/d/y 或 d-m-y 格式的日期可以通过查看来消除歧义 各个组件之间的分隔符。

      【讨论】:

        【解决方案3】:

        使用DateTime (documentation) 优先用于有时间差异的操作

        $date_1 = new DateTime($olddate);
        $date_2 = new DateTime($new_date);
        
        $diff = $date_1->diff($date_2);
        

        上面会返回 DateInterval 对象,里面包含了你需要的所有信息(documentation)

        也可以使用strtotime,它只返回你时间的unix时间戳。

        $stamp_1 = strtotime($oldddate); 
        $stamp_2 = strtotime($newdate);
        
        $diff = $stamp_2 - $stamp_1; // really any comparison here
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-11-17
          • 1970-01-01
          • 2020-10-01
          • 2019-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多