【问题标题】:Current year, specific day and specifc month - PHP当前年份,特定日期和特定月份 - PHP
【发布时间】:2015-10-23 12:49:33
【问题描述】:

我想比较两个日期,但出了点问题。

我的代码:

<?php

date_default_timezone_set('Europe/Lisbon');
$hoje = date("Y/m/d");
$data_mudanca = date("Y")."-10-24";

echo 'Today: '.$hoje.'<br>';
echo 'ChangeDay: '.$data_mudanca.'<br>';

if($hoje > $data_mudanca){
    echo 'Today is bigger';
}else{
    echo 'ChangeDay is bigger';
}

?>

我的结果:

今天:2015/10/23 变更日:2015-10-24 今天更大了


但今天并不大。

【问题讨论】:

    标签: php string date date-math


    【解决方案1】:

    您的日期格式不同,更不用说可比较的日期了。要么使用可比较的 DateTime() 对象,要么将它们放入同样可比较的 YYYY-MM-DD 字符串格式:

    <?php
    
    date_default_timezone_set('Europe/Lisbon');
    $hoje = new DateTime();
    $data_mudanca = new DateTime(date("Y")."-10-24");
    
    if($hoje > $data_mudanca){
        echo 'Today is bigger';
    }else{
        echo 'ChangeDay is bigger';
    }
    
    ?>
    

    <?php
    
    date_default_timezone_set('Europe/Lisbon');
    $hoje = date("Y-m-d");
    $data_mudanca = date("Y")."-10-24";
    
    if($hoje > $data_mudanca){
        echo 'Today is bigger';
    }else{
        echo 'ChangeDay is bigger';
    }
    
    ?>
    

    【讨论】:

    • 感谢约翰康德! :)
    • 我认为比较日期字符串不是一个好主意。要么使用 DateTime,要么比较时间戳,但不比较日期字符串。
    【解决方案2】:

    添加strtotime() php函数

        <?php
        date_default_timezone_set('Europe/Lisbon');
        $hoje = strtotime(date("Y/m/d"));
        $data_mudanca = strtotime(date("Y")."-10-24");
    
        echo 'Today: '.$hoje.'<br>';
        echo 'ChangeDay: '.$data_mudanca.'<br>';
    
        if($hoje > $data_mudanca){
            echo 'Today is bigger';
        }else{
            echo 'ChangeDay is bigger';
        }
    
        ?>
    

    【讨论】:

      猜你喜欢
      • 2013-02-15
      • 2017-01-19
      • 2023-03-20
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      相关资源
      最近更新 更多