3

我正在构建一个活动日历并将开始时间传递给 PHP,格式为 2009-09-25 15:00:00。持续时间也会过去,可能是 60 分钟或 3 小时的格式。从小时转换为分钟不是问题。您如何将时间长度添加到已建立的起点以正确格式化结束时间?

4

3 回答 3

9

如果您有足够高的版本号,那么简单的方法:

$when = new DateTime($start_time);
$when->modify('+' . $duration);
echo 'End time: ' . $when->format('Y-m-d h:i:s') . "\n";
于 2009-08-23T16:44:52.803 回答
8

使用strtotime()您可以将当前时间 (2009-09-25 15:00:00) 转换为时间戳,然后将 (60 * 60 * 3 = 3hrs) 添加到时间戳。最后只需将其转换回您想要的任何时间。

//Start date
$date = '2009-09-25 15:00:00';
//plus time
$plus = 60 * 60 * 3;
//Add them
$time = strtotime($date) + $plus;
//Print out new time in whatever format you want
print date("F j, Y, g:i a", $time);
于 2009-08-23T16:46:42.223 回答
0

作为@Xeoncross 好strtotime答案的补充,strtotime()支持“2009-09-25 +3 小时”、“9 月 25 +6 天”、“下周一”、“上周五”、“-15 分钟”等格式。

于 2009-08-23T17:04:16.133 回答