【问题标题】:Compare two dates in php在php中比较两个日期
【发布时间】:2012-10-04 14:29:25
【问题描述】:

我这里有这段代码,它允许我检索一些日期。 我以这种方式保存了今天的日期:

$time = date("d-m-Y");

我在数据库中的日期字段是一个 varchar,格式如下:d-m-Y

我如何比较它们?这个我用过,但是不行!

SELECT DATE_FORMAT('date','%d-%m-%Y'), id, WHERE date>$time;

感谢您的帮助!

【问题讨论】:

标签: php mysql


【解决方案1】:

如果您想通过从数据库中获取来比较日期,那么我建议您以日期格式而不是 varchar 格式存储。

但现在您可以执行以下操作:

首先使用 strtotime 将字符串转换为 unix 时间戳。喜欢:

$time = strtotime( $date );

然后您使用此时间戳以您想要的任何格式计算日期。要获得所需的格式,您可以这样做:

$newDate = date( 'd-m-y', $time );

【讨论】:

    【解决方案2】:

    尝试在查询中使用STR_TO_DATE 函数首先将VARCHAR 转换为DATETIME 值。

    【讨论】:

      【解决方案3】:

      id 之后有一个额外的,,并且在查询中还需要一个from 子句。

      SELECT DATE_FORMAT('date','%d-%m-%Y') as new_date, id from your_table WHERE new_date > $time;
      

      【讨论】:

        【解决方案4】:

        您正在使用原始值构建 WHERE 子句,请尝试以下操作:

        SELECT DATE_FORMAT('date','%d-%m-%Y') AS compare_date, `id` FROM `table_name` WHERE DATE_FORMAT('date','%d-%m-%Y') > $time;
        

        请注意,这是一个字符串比较,所以最好反过来做,例如%Y-%m-%d

        或者按照@Micah Carrick 的建议使用STR_TO_DATE 函数。

        【讨论】:

          【解决方案5】:
                This Example Is Working 100% try Now
          
                $exp_date = "2006-01-16"; 
          
                $todays_date = date("Y-m-d"); 
          
                $today = strtotime($todays_date); 
          
                $expiration_date = strtotime($exp_date); 
          
                if ($expiration_date > $today) 
                   { 
                     $valid = "yes"; 
                   } 
                else 
                   { 
                     $valid = "no"; 
                   }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-11-29
            • 2011-04-20
            • 2014-07-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多