Условный DateDiff

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

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

<?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";
}
?>

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

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

0

Решение

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

<?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');
}

?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]