我的PHP函数有问题.它一直工作到现在,当我需要计算2013-03-28和2013-04-01之间的天数(或更精确的夜晚).结果应为4(03/28至03/29,03/29至03/30,03/30至03/31和03/31至04/01)并且我的函数返回3.(当我使用2012-时03-28和2012-04-01而不是2013年的相同日期,它正常工作).你能帮我吗?
function termLength($dateFrom, $dateTo) {
$dateFrom = (($dateFrom instanceof DateTime) ? $dateFrom : new DateTime($dateFrom));
$dateTo = (($dateTo instanceof DateTime) ? $dateTo : new DateTime($dateTo));
$difference = $dateTo->format('U') - $dateFrom->format('U');
return floor($difference / (60 * 60 * 24));
}
echo termLength('2013-03-28', '2013-04-01');
// output: 3
// it should be: 4
Run Code Online (Sandbox Code Playgroud)
你能帮我吗?谢谢,J.
如果您仍在使用DateTime,请使用以下DateInterval机制:
$diff = $dateFrom->diff($dateTo);
echo $diff->format('%a');
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/datetime.diff.php
| 归档时间: |
|
| 查看次数: |
2362 次 |
| 最近记录: |