本文概述
- 四舍五入到最接近的间隔
- 四舍五入到最大间隔
- 四舍五入到最低间隔
在本文中, 我们将与你分享3种方法, 这些方法将帮助你轻松地将DateTime对象的时间四舍五入到最接近的时间间隔(最高或最低)。
注意这三种方法默认都以10分钟为间隔, 你可以根据需要更改它, 例如5、20等。只需将间隔更改为函数的第二个参数即可!
四舍五入到最接近的间隔以下函数将日期时间对象的分钟四舍五入到最接近的给定间隔:
<
?php /** * Round minutes to the nearest interval of a DateTime object. * * @param \DateTime $dateTime * @param int $minuteInterval * @return \DateTime */public function roundToNearestMinuteInterval(\DateTime $dateTime, $minuteInterval = 10){return $dateTime->
setTime($dateTime->
format('H'), round($dateTime->
format('i') / $minuteInterval) * $minuteInterval, 0);
}
可以这样使用:
<
?php $date = new DateTime("2018-06-27 20:37:00");
$date = roundToNearestMinuteInterval($date);
// Rounded from 37 minutes to 40//2018-06-27 20:40:00echo $date->
format("Y-m-d H:i:s");
或者, 如果datetime对象的分钟数小于最大间隔, 则使用较小的间隔:
<
?php $date = new DateTime("2018-06-27 20:33:00");
$date = roundToNearestMinuteInterval($date);
// Rounded from 33 minutes to 30//2018-06-27 20:30:00echo $date->
format("Y-m-d H:i:s");
四舍五入到最大间隔以下函数将日期时间对象的分钟四舍五入到给定的最大间隔:
<
?php /** * Round up minutes to the nearest upper interval of a DateTime object. * * @param \DateTime $dateTime * @param int $minuteInterval * @return \DateTime */public function roundUpToMinuteInterval(\DateTime $dateTime, $minuteInterval = 10){return $dateTime->
setTime($dateTime->
format('H'), ceil($dateTime->
format('i') / $minuteInterval) * $minuteInterval, 0);
}
可以这样使用:
<
?php $date = new DateTime("2018-06-27 20:37:00");
$date = roundUpToMinuteInterval($date);
// Rounded from 37 minutes to 40//2018-06-27 20:40:00echo $date->
format("Y-m-d H:i:s");
四舍五入到最低间隔以下函数将日期时间对象的分钟四舍五入到给定的最小间隔:
<
?php/** * Round down minutes to the nearest lower interval of a DateTime object. * * @param \DateTime $dateTime * @param int $minuteInterval * @return \DateTime */public function roundDownToMinuteInterval(\DateTime $dateTime, $minuteInterval = 10){return $dateTime->
setTime($dateTime->
format('H'), floor($dateTime->
format('i') / $minuteInterval) * $minuteInterval, 0);
}
可以这样使用:
<
?php $date = new DateTime("2018-06-27 20:33:00");
$date = roundDownToMinuteInterval($date);
// Rounded from 33 minutes to 30//2018-06-27 20:30:00echo $date->
format("Y-m-d H:i:s");
【如何在PHP中将日期时间四舍五入到最接近的10或5分钟】编码愉快!
推荐阅读
- 如何将嵌套的PHP数组转换为CSS,SASS,LESS规则(字符串)
- 使用PHP将字节转换为人类可读的值(KB,MB,GB,TB,PB,EB,ZB,YB)
- 如何在Linux中获取和显示目录大小
- php|PHP对数据库的增删改查
- Android蓝牙BLE我可以修改哪些连接的配置参数
- Android bluetoothSocket连接错误
- 使用android-beacon-library检测蓝牙设备
- 目前连接的蓝牙设备android
- Android蓝牙聊天示例无效,无法连接设备