簡體   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