php 获取两个日期之间相隔的年、月、日、时、分、秒
程序员文章站
2022-04-16 21:18:15
...
在PHP中如果我们想获取两个时间日期之间相隔有多少天,多少个月,你会怎么做呢?我们先看看网友提供的一些参考:
以上图片仅作为列子,无意冒犯,如有侵权请联系删除
现在如果我们使用“2003-08-11”和“2008-11-06”来测试是没有问题的;但如果我们使用 “2018-02-11” 和 “2018-03-01” 来测试就会发现输出的是 1;事实上只有18天而已。
下面看看改进的代码:
<?php
/**
* @param $startDateTime 开始时间
* @param $endDateTime 结束时间
* @return array
*/
function timeDiff($startDateTime, $endDateTime) {
$startDateTime = new DateTime($startDateTime);
$endDateTime = new DateTime($endDateTime);
$interval = $startDateTime->diff($endDateTime);
$formatMap = [
'y' => 'year',
'm' => 'month',
'd' => 'day',
'h' => 'hour',
'i' => 'minute',
's' => 'second',
'days' => 'days',
];
$returnData = [];
foreach ($formatMap as $key => $val) {
$returnData[$val] = $interval->{$key};
}
return $returnData;
}
?>
<?php
...
$res = timeDiff('2018-02-11', ''2018-03-01');
print_r($res);
// 已下为结果:
/**
* Array
* (
* [year] => 0 // 相差的 年 数
* [month] => 0 // 相差的 月 数
* [day] => 18 // 相差的 天 数
* [hour] => 0 // 相差的 小时 数
* [minute] => 0 // 相差的 分钟 数
* [second] => 0 // 相差的 秒 数
* [days] => 18 // 相差总的天数
* )
**/
// 计算总的月份
$res['year'] * 12 + $res['month'];
参考链接:http://php.net/manual/en/datetime.diff.php
上一篇: 幽默扮酷恋爱表白短信精选
下一篇: 情侣间的等待同样漫长
推荐阅读
-
iOS-获取当前时间的年、月、日、时、分、秒 MaemoOPhoneAppleObjective-C黑莓
-
PHP获取指定时间段之间的 年,月,天,时,分,秒,php获取
-
获取两个日期之间的日期(年/月/日),包括开始结束日期
-
PHP获取指定时间段之间的 年,月,天,时,分,秒,php获取
-
php计算时间差/两个时隔日期相隔的天数,时,分,秒
-
php计算时间差/两个时隔日期相隔的天数,时,分,秒
-
php 怎么获取指定时间段之间的 年,月,天,时,分,秒代码实例
-
PHP获取指定时间段其间的 年,月,天,时,分,秒
-
PHP计算两个时间的差(秒 分 时 天 月 年)
-
php计算时间差/两个时隔日期相隔的天数,时,分,秒