php比较当前日期与存储在数据库中的日期

时间:2013-12-04 09:51:20

标签: php

我正在尝试编写一个PHP脚本,我想从数据库表中提取日期字段,存储此日期将其与今天进行比较。要查看数据。数据库已经过或未与今天相比。

  1. 我为此功能编写的代码看起来不起作用
  2. 我认为我的日期()格式错误。
  3. 我不确定判断的逻辑。
  4. PHP

    $sql="SELECT enddate FROM campaigns WHERE id=".$data['camp'];
        $result = mysqli_query($db, $sql);
    
    while($info = mysqli_fetch_assoc($result)){
        if(date("Y-m-d") > $result){
            exit;
            echo "Success";
        }
        elseif(date("Y-m-d") < $result){
            return true;
            echo "Failure";
        }
    }
    

5 个答案:

答案 0 :(得分:2)

使用strtotime()

while($info = mysqli_fetch_assoc($result)){
    if(strtotime(date("Y-m-d")) > strtotime($result)){
        exit;
        echo "Success";
    }
    elseif(strtotime(date("Y-m-d")) < strtotime($result)){
        return true;
        echo "Failure";
    }
}

答案 1 :(得分:1)

你必须这样做:

if(date("Y-m-d") > $info['enddate']) {

答案 2 :(得分:0)

你可以让MySQL担心它。

SELECT DATEDIFF(NOW(),enddate) FROM campaigns WHERE id=".$data['camp']

这将返回两个日期之间的天数。 See the manual for DATEDIFF

答案 3 :(得分:0)

您可以使用以下查询:

$sql="SELECT (CASE WHEN DATE(NOW()) > enddate THEN 'success' ELSE 'failed' END) AS mystatus FROM campaigns WHERE id=".$data['camp'];

然后您只需要从查询中调用 mystatus 列。

答案 4 :(得分:0)

我花了很多时间来比较日期,我找到了像这样的解决方案

始终将格式设置为日期(&#39; Y-m-d&#39;)

$dateTo='2016-08-07';
if(date("Y-m-d", strtotime($dateTo)) > date('Y-m-d')){
   echo 'yes';
}else{
   echo 'no';
}