Я пытаюсь получить разницу в днях между двумя датами. Первая дата - текущий день. Другая дата - их день рождения. Я хочу посчитать разницу между сегодняшним днем и их следующим днем рождения. В настоящее время он выводит корректно, если пользователь печатает в своем bday, как сегодня, но все остальное просто портится. Я хотел бы рассчитать его по дням.
Например, если я введу свой bday как 01/11/1988
, моя программа выведет 0 Years, 1 Months, 21 Days
. Если мне удастся заставить его правильно выводить годы, месяцы и дни, тогда я смогу подсчитать общее количество дней, но на данный момент он просто не работает должным образом. Спасибо, что посмотрели. Вот мой код:
if (isset($_POST["birthday"])){
$birthday=$_POST["birthday"];
if (!empty($birthday)){
$birthdayArray = explode("/", $birthday);
if (count($birthdayArray) != 3 || strlen($birthday) != 10){
echo "<b>Please follow the format (ex. 09/15/1988).</b><br/>";
}else{
$month = $birthdayArray[0];
$day = $birthdayArray[1];
$year = $birthdayArray[2];
echo "Your bday is: ".$month."/".$day."/".$year;
echo "<br/>";
if (strcmp($currentMonth,$month) == 0 && strcmp($currentDay,$day) == 0){
echo "Your birthday is today.<br/>";
}else{
$date1 = new DateTime("$currentYear-$currentMonth-$currentDay");
if (strcmp($currentMonth, $month) <= 0 && strcmp($currentDay, $day) < 0 ){
$currentYear = $currentYear + 1;
$date2 = new DateTime("$currentYear-$month-$day");
}else{
$date2 = new DateTime("$currentYear-$month-$day");
}
$interval = $date1->diff($date2);
echo $interval->y." Years, ".$interval->m." Months, ".$interval->d." Days.";
}
}
}else{
echo "<b>Please enter your birthday.</b><br/>";
}
}