繁体   English   中英

比较PHP和MYSQL中的两个日期

[英]Comparing two dates in PHP and MYSQL

我想在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()两个日期,但它给了我同样的问题。 即使两个日期不同,上述条件也满足任何时间。

试试这个 :

$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{
}

希望能帮助到你 !!!!

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

$row = get_db_row("SELECT UNIX_TIMESTAMP(send_date) AS send_date_ts
  FROM table WHERE $condition");
$hours = (int) ($row['send_date_ts'] / 3600);
$current_hours = (int) (time() / 3600);
if ($hours == $current_hours) {
  // current hour
}

时间戳很方便,因为:

  • 没有必要考虑这种格式;
  • 对数字的操作通常更快;
  • 代码看起来更干净。

试试这个。 在我的服务器上工作得很好我还有别的因为他们不平等。 从数据库收到的日期是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM