2015-11-06 2 views
0

Я посетил часть сообщения, получая разницу дат между двумя датами в SO, но это не дало мне ответа, который я искал. То же самое для чтения документации, у меня возникла проблема с пониманием того, как она работает.Условный DateDiff

Я пробовал кодировать его, но он не ведет себя так, как я ожидал. Вот мой код:

<?php 
$currentDate = new DateTime(); 
$createDateJoin = date_create($getDate['date_joined']); 
$dateJoin = date_format($createDateJoin, "Y-m-d"); 

$yearDifference = $currentDate->diff($createDateJoin); 

    if ($yearDifference->d < 31 && $yearDifference->m = 0 && $yearDifference->y == 0) { 
     echo $yearDifference->d . " days"; 
     } else if ($yearDifference->m > 3) { 
       echo $yearDifference->m . " month"; 
     } else if ($yearDifference->y > 1) { 
       echo $yearDifference->y . " years"; 
     } else { 
       echo "Not yet assigned"; 
     } 
?> 

Как вы можете видеть из моего кода выше, я пытаюсь сделать оттиск, когда после вычисления разницы между 2 датами, оно отвечает условие $yearDifference-> поведения .The из программы которые я испытал, не распечатывает то, что я хочу соответственно (например, сотрудники, работающие более 1 года, будут печатать, сколько лет они работают, месяцы для тех, кто только что пришел, а новый штат меньше месяца будет печатать дни) ,

Я хотел бы знать, как же ->d/m/y работает и как я могу реально использовать в d, m и y вытягивать конкретную дату правильно. И я также заметил, что когда я обрабатываю $yearDifference как String или int, он дает другой результат для условий. Итак, что я должен рассматривать тип, чтобы легче манипулировать им? Большое спасибо за помощь.

ответ

0

Вы можете использовать этот код, чтобы получить дату другого метода дифа() возвращает объект больше значения для проверки вы можете print_r вашего объекта, который будет печатать весь элемент данных, возвращаемые через дифф метод()

<?php 
echo get_date_diff(strtotime('1990-10-12'),strtotime('2015-10-14')); 
function get_date_diff($date,$dateEnd) { 
    $dStart = new DateTime(date("Y-m-d", $date)); 
    $dEnd = new DateTime(date("Y-m-d", $dateEnd)); 
    $dDiff = $dStart->diff($dEnd); 
    return($dDiff->y.' years <br>'.$dDiff->m.' months <br>'.$dDiff->d. ' days'); 
} 

?>