2016-07-30 2 views
-1

У меня есть две даты начала и окончания, которые уже заказаликак сравнить между двумя датами в 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; 
} 
?> 

в arr4 [] Я получаю между датами, которые уже забронированы как б/ш 1-3 все даты, то же я получаю, что пользователь хочет забронировать даты,

Как сравнить эти две даты и совпадение, если даты соответствуют друг другу, а затем показывать даты оповещения, а другой - вставить запрос, так что, пожалуйста, помогите.

ответ

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, чтобы сделать это функция возвращает положение на сегодняшний день diffrent

вы можете сравнить некоторые даты и ток в 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

Вы правы, я обновил сообщение сейчас –

Смежные вопросы