我试图在两个日期之间获得天数差异。第一天是当天。另一天是他们的生日。我想计算今天和他们下一个生日之间的差异。目前,如果用户今天输入他们的bday,它会正确输出,但是其他任何东西都会被混淆。我想按天计算一下。php日期差异
例如,如果我输入我的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/>";
}
}
这需要进行基本的调试。什么时候出问题了?测试输出是什么'month',''day'和'year'显示? – 2012-03-01 08:34:11
它们显示用户输入的日期,例如,如果我输入09/15/1988,那么$ month将是09,$ day将是15,$ year将是1988. – stytown 2012-03-01 08:36:21
好吧,然后进一步调试。每次操作后都要测试每个值的输出。它在哪一点脱轨? – 2012-03-01 08:49:06