对sql(Y-m-d)使用Php current(Y-m-d)与if / else完全匹配

时间:2017-08-27 07:07:25

标签: php

Ive checked the leads here and have not found the right solution,

<?php
     $mysqldate = $row['callbackdate'];
     $phpcurrentdate = strtotime( $mysqldate );

          if ( $phpcurrentdate == date("Y-m-d") ) {
               echo $row['last_name'];
           }else{
               echo "Nothing";

}

?>

sql中的日期字段是日期,格式为YYYY-mm-dd。总是被回复的答案是&#34;没什么&#34;。我知道这类问题有很多变化,但我没有找到这种类型的运气。我不是在寻找一个范围排序只是一个简单的匹配...而且数据$ row [&#39; callbackdate&#39;]正在运行,因为我测试了所有其他连接。

所以我很感激任何帮助!谢谢, 莱斯

2 个答案:

答案 0 :(得分:1)

     $mysqldate = "2017-08-28"; //example
     $phpcurrentdate = DateTime::createFromFormat('Y-m-d', $mysqldate); //put your format 
     $today= new DateTime("now");  

          if ( $phpcurrentdate == $today ) {
               echo 'last_name';
           }else{
               echo "Nothing";

}

答案 1 :(得分:1)

日期在数据库中以字符串形式存储。作为可能的解决方案是将日期格式化为例如:

$today = date('Y-m-d H:i:s');
$databaseDate = '2017-08-06 20:50:38'; 

var_dump(new DateTime($today) > new DateTime($databaseDate)) // returns true

var_dump(new DateTime($today) < new DateTime($databaseDate)) // returns false 

另一种方法是使您的列在数据库中键入DateTime。这样,您只需将当前日期格式化为DateTime,然后就可以比较它们