2015-07-29 2 views
0

Я использую плагин wordpress для бронирования курортов, и в части бронирования он показывает окно с вашим поиском (регистрация - выписка - ночей - количество взрослых ,,, и т.д ..)Интервал даты/ночи в PHP

Я также хочу показать количество дней .. , так что если ночей всего 7 ночей, я хочу показать (8 дней/7 ночей) вместо показа (7 ночей).

вот PHP код этой части:

<?php 
     $datetime1 = new DateTime($from); 
     $datetime2 = new DateTime($to); 
     $interval = $datetime1->diff($datetime2); 
     $nights = $interval->format('%a'); 
     ?> 

и показывая это следующим образом:

<div><?php echo '<b>From:</b> ' . $from . '&nbsp; <b>To:</b> ' . $to . '&nbsp; <b>No. of nights: </b> ' . $nights . ' night(s) ' . ''; ?></div> 

Любая помощь будет высоко оценен.

Благодаря

+1

Итак ... вы ищете помощь для '$ nights + 1'? – Burki

+0

Извините, но я очень новый для PHP, и я знал, что это легко, но я точно не знал, как это сделать ... – ZEGHAL

+0

Пока это вам поможет. :-) Вы можете захотеть поиграть с несколькими учебниками, чтобы помочь вам привыкнуть к языку. – Burki

ответ

0

Вы можете попробовать это один

<?php 
    $from = '2000-01-01 12:00:00'; 
    $to = '2000-01-03 01:00:00'; 
    $hours = round((strtotime($to) - strtotime($from))/3600, 1); 
    $daynight=ceil($hours/12); 
    if($daynight%2==0) 
    { 
     echo $daynight/2 ." Days and ". $daynight/2 ." Nights"; 
    } 
    else 
    { 
     $ampm = date('A', strtotime('$from')); 
     $nights = $daynight/2; 
     $days = $daynight/2; 
     if(strcasecmp($ampm, "AM")) 
      $nights+=1; 
     else 
      $days+=1; 
     echo floor($days) ." Days and ". floor($nights) ." Nights"; 
    } 
?> 

Хотя ночное время считается с 00:00:00 до 12:00:00 и день считается с 12:00:00 до 23 : 59: 59

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