我曾经访问了一些帖子,检索了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 :(得分:0)
您可以使用此代码获取日期不同的方法diff()对象返回更多值以检查您是否可以print_r您的对象将打印通过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');
}
?>