我真的很难将X分钟添加到日期时间,经过大量的谷歌和PHP手动阅读,我似乎没有得到任何地方.
我的日期时间格式是:
2011-11-17 05:05
: year-month-day hour:minute
要添加的分钟数将只是0到59之间的数字
我希望输出与添加分钟的输入格式相同.
有人可以给我一个有效的代码示例,因为我的尝试似乎没有让我到任何地方?
Tim*_*per 150
$minutes_to_add = 5;
$time = new DateTime('2011-11-17 05:05');
$time->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$stamp = $time->format('Y-m-d H:i');
Run Code Online (Sandbox Code Playgroud)
Dan*_*iel 97
PHP的DateTime类有一个有用的修改方法,它采用易于理解的文本.
$dateTime = new DateTime('2011-11-17 05:05');
$dateTime->modify('+5 minutes');
Run Code Online (Sandbox Code Playgroud)
您还可以使用字符串插值或连接来对其进行参数化:
$dateTime = new DateTime('2011-11-17 05:05');
$minutesToAdd = 5;
$dateTime->modify("+{$minutesToAdd} minutes");
Run Code Online (Sandbox Code Playgroud)
Nem*_*den 35
$newtimestamp = strtotime('2011-11-17 05:05 + 16 minute');
echo date('Y-m-d H:i:s', $newtimestamp);
Run Code Online (Sandbox Code Playgroud)
结果是
2011-11-17 05:21:00
现场演示是 here
如果你还不熟悉strtotime
,你最好php.net
去发现它的强大功能:-)
Bra*_*rad 18
您可以轻松地使用本机功能执行此操作:
strtotime('+59 minutes', strtotime('2011-11-17 05:05'));
Run Code Online (Sandbox Code Playgroud)
我推荐使用DateTime类方法,只是Tim发布的.
小智 9
我不知道为什么设置为解决方案的方法对我不起作用。所以我在这里发布对我有用的东西,希望它可以帮助任何人:
$startTime = date("Y-m-d H:i:s");
//display the starting time
echo '> '.$startTime . "<br>";
//adding 2 minutes
$convertedTime = date('Y-m-d H:i:s', strtotime('+2 minutes', strtotime($startTime)));
//display the converted time
echo '> '.$convertedTime;
Run Code Online (Sandbox Code Playgroud)
我认为在处理时区时这会有所帮助.我的修改后的解决方案基于@Tim Cooper的解决方案,上面是正确答案.
$minutes_to_add = 10;
$time = new DateTime();
**$time->setTimezone(new DateTimeZone('America/Toronto'));**
$time->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$timestamp = $time->format("Y/m/d G:i:s");
Run Code Online (Sandbox Code Playgroud)
粗线,第3行,是添加.我希望这对一些人也有帮助.