我访问了一些帖子,检索了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->.The行为的条件,而我所经历的程序没有相应地打印出我想要的东西(例如,工作超过1年的员工将打印出他们工作的年限,新员工将打印出他们已经工作了几年,新员工不到一个月将打印出天)时,我正在尝试进行打印。
我想知道->d/m/y是如何工作的,以及我如何实际利用d、m和y来正确地提取具体的日期。我还注意到,当我将$yearDifference视为String或int时,它会针对不同的条件得出不同的结果。那么,我应该怎样对待这个类型才能更容易地操作它呢?非常感谢你的帮助。
发布于 2015-11-06 14:50:09
您可以使用此代码来获取日期不同的方法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');
}
?> https://stackoverflow.com/questions/33560671
复制相似问题