2016-07-30 36 views
-1

兩個日期之間的比較,我有兩個日期開始和那些已經在arr4預訂如何在PHP

<?php 
$arr2 = range(strtotime($_POST['start']), strtotime($_POST['end']), "86400"); 
//$arr2 = range(strtotime($row['check_out_date']),strtotime($row['check_in_date']), "86400"); 
//echo $arr1; 
array_walk_recursive($arr2, function(&$element) { 
    $element = date("j-n-Y", $element); 
}); 
//array_walk_recursive($arr2, function(&$element) { $element = date("d-n-Y", $element); }); 
$es = array(); 
//array_push($events, $e); 
$name = json_encode($es); 
//echo $name;  
foreach ($arr2 as $values) { 
    $arr4[] = $values; 
    echo $values; 
} 
?> 

末[]我得到的是已經被預定類似的B/W 1-3日期間所有日期,相同我得到該用戶想要預訂日期,

如何比較這兩個日期,並匹配如果日期匹配,然後顯示警報日期匹配,否則perfom插入查詢,所以請幫助。

回答

0

有幾種方法來比較PHP日期,但我使用的方法是使用PHP的內置DateTime類:

<?php 
$timezone = new DateTimezone('America/Chicago'); 
$start = DateTime::createFromFormat('Y-m-d H:i:s','2016-01-01 00:00:00',$timezone); 
$end = DateTime::createFromFormat('Y-m-d H:i:s','2016-02-02 00:00:00',$timezone); 
// PHP 5.2.2 allows you to compare dates using differential operators 
// Otherwise use DateTime::diff, http://php.net/manual/en/datetime.diff.php 
if($start == $end){ 
    echo "Same!\n"; 
} 
else { 
    echo "Not Same!\n" 
} 
?> 
+0

通過這種方法目前我可以從陣列commare日期,我已經預訂在一個數組中的日期和其他數組中的新預訂日期,我想比較一下。 –

-1

這是我fanction做 該函數返回一個子句日期不同勢

你可以比較的一些日和2種方式

timeDiff('123556568') // time() 

timeDiff('20-6-2020') // any date format 

timeDiff('20-6-2020','20-2-2120') // two dates 

timeDiff('143556568','123556568') // two dates 



    function timeDiff($time2_, $time1_ = false) { 
      $date1 = new \DateTime(); 
      if ($time1_) { 
// check if it timestamp or not 
       $time1 = preg_match('/[-\/]/', $time1_) ? strtotime($time1_) : $time1_; 
       $date1->setTimestamp($time1); 
      } 
      $date2 = new \DateTime(); 
      $time2 = preg_match('/[-\/]/', $time2_) ? strtotime($time2_) : $time2_; 
      $date2->setTimestamp($time2); 
      $interval = $date1->diff($date2); 
// get diffrence 
      $diffrent_ = $interval->format('%Y Years %m Months %d Days %H:%I:%S'); 
// clean from zero values 

      $diffrent = str_replace(['00 Years', ' 0 Months', ' 0 Days', '00:00:00'], '', $diffrent_); 
// some change for 01 & s 
      $returner = str_replace(['01 Years', ' 1 Months', ' 1 Days'], ['01 Year', ' 1 Month', ' 1 Day'], $diffrent); 
      return trim($returner); 
     } 
+0

如果您提供了一些有關您的代碼的解釋或詳細信息以及它爲什麼有效,那將會很有幫助。只是提供直接的代碼可能會回答這個問題,但如果您提供了有關代碼的更多細節以及它的工作原理,它會更有幫助。 –

+0

你是我的權利,我已經更新了現在的帖子 –