PHP,从 date() 添加分钟日期



我有一个 PHP 日期时间,形式为2019-10-10 18:25:00.我想添加分钟,如果添加分钟后的日期时间结果超过2019-10-10 19:00:00其余时间(分钟(将在接下来的几天添加。

这在 PHP 中是如何实现的?

使用DateInterval(),它将为您完成这两项操作。

$time = '2019-10-10 18:25:00';
$durations = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
foreach($durations as $duration) {
$date = new DateTime($time);
$date->add(new DateInterval('PT'.$duration.'S'));
echo $date->format('Y-m-d H:i:s').PHP_EOL;
}

输出:

2019-10-10 18:25:10
2019-10-10 18:25:20
2019-10-10 18:25:30
2019-10-10 18:25:40
2019-10-10 18:25:50
2019-10-10 18:26:00
2019-10-10 18:26:10
2019-10-10 18:26:20
2019-10-10 18:26:30
2019-10-10 18:26:40

https://3v4l.org/qd6DQ

请注意,格式为PeriodDurationDesignatorP###(D/M/Y/W)为日/月/年/周(P10D为10天(。对于时间,请添加TPT###(H/M/S)PT10S10 秒的时间段。

可以使用 DateTime 的 Modify 方法添加分钟数。如果结果大于当天 19:00 的日期,则取第二天并添加其余部分。

$minutesAdd = 45;
$strDate = "2019-10-10 18:25:00";
$dateTime = date_create($strDate)
->modify($minutesAdd." Minutes");
$dateComp = date_create($strDate)
->setTime(19,0,0);
if($dateTime >= $dateComp){
$rest = $dateComp->diff($dateTime);
$dateTime
->modify("next Day 00:00")
->add($rest);
}
echo $dateTime->format("Y-m-d H:i:s");

返回

2019-10-11 00:10:00

最新更新