比较PHP和MYSQL中的两个日期

时间:2016-10-17 05:53:23

标签: php mysql date

我想在PHP中比较两个日期和时间值。一个日期来自MySQL,第二个日期是当前日期。我希望在两个日期相同时运行一些代码。我尝试了下面的代码,但条件满足任何错误的时间。

$current_datetime = date('Y-m-d H:i');
$send_date = date("Y-m-d H:i", strtotime($row['send_date'])); // suppose $row['send_date']'s value is '2016-10-17 15:00'
if($current_datetime == $send_date){
    //I want to run some code here
}else{
}

代码有什么问题?在比较之前,我还试图用strtotime()隐藏两个日期,但它给了我同样的问题。即使两个日期不同,上述条件也能满足任何时间。

3 个答案:

答案 0 :(得分:4)

试试这个:

$current_datetime = date('Y-m-d H:i');
$send_date = date("Y-m-d H:i", strtotime($row['send_date'])); // suppose $row['send_date']'s value is '2016-10-17 15:00'
if(strtotime($current_datetime) == strtotime($send_date)){
    //I want to run some code here
}else{
}

希望它有帮助!!!!

答案 1 :(得分:2)

一种方法是从MySQL获取Unix timestamp(自1970-01-01 00:00:00'UTC以来的秒数),然后对数字进行操作:

{{1}}

时间戳很方便,因为:

  • 无需考虑格式;
  • 对数字的操作通常更快;
  • 代码看起来更干净。

答案 2 :(得分:0)

试试这个。在我的服务器上工作得很好我还有别的东西,因为它们并不相同。我从数据库收到的日期是datetime格式2015-04-13 09:03:49

<?php
     $current_datetime = strtotime(date('Y-m-d H:i'));
     $send_date = date("Y-m-d H:i", strtotime($row['send_date'])); // suppose $row['send_date']'s value is '2016-10-17 15:00'
     if($current_datetime == $send_date){
         //I want to run some code here
         echo 'something';
     }else{ 
         echo 'something else';
     }

输出:

echo $current_datetime . '<br/>';
2016-10-17 09:19

echo $send_date .'<br/>';    
2015-04-13 09:03

// result
something else