在PHP中添加date时间

我真的坚持添加X分钟date时间,做了很多谷歌和PHP手册阅读,我似乎没有得到任何地方。

我有的date时间格式是:

2011-11-17 05:05year-month-day hour:minute

分钟添加将只是一个介于0和59之间的数字

我希望输出与添加分钟的input格式相同。

有人能给我一个工作代码的例子,因为我的企图似乎没有让我到任何地方?

 $minutes_to_add = 5; $time = new DateTime('2011-11-17 05:05'); $time->add(new DateInterval('PT' . $minutes_to_add . 'M')); $stamp = $time->format('Ymd H:i'); 
 $dateTime = new DateTime('2011-11-17 05:05'); $dateTime->modify('+5 minutes'); 
 $newtimestamp = strtotime('2011-11-17 05:05 + 16 minute'); echo date('Ymd H:i:s', $newtimestamp); 

结果是

2011-11-17 05:21:00

现场演示在here

如果你还不熟悉strtotime ,你最好去php.net发现它是伟大的力量:-)

您可以轻松地使用本机function执行此操作:

 strtotime('+59 minutes', strtotime('2011-11-17 05:05')); 

我推荐使用DateTime类的方法,只是由Tim发布。

我认为这也会在处理时区时有所帮助。 我的修改解决scheme是基于@Tim Cooper的解决scheme,上面的正确答案。

 $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"); 

粗体的第3行是增加。 我希望这也可以帮助一些人。

如果你想给一个包含分钟的variables。

那么我认为这是实现这个目标的好方法。

 $minutes = 10; $maxAge = new DateTime('2011-11-17 05:05'); $maxAge->modify("+{$minutes} minutes"); 

有点迟到的答案,但我会使用的方法是:

 // Create a new \DateTime instance $date = DateTime::createFromFormat('Ymd H:i:s', '2015-10-26 10:00:00'); // Modify the date $date->modify('+5 minutes'); // Output echo $date->format('Ymd H:i:s'); 

或在PHP> = 5.4

 echo (DateTime::createFromFormat('Ymd H:i:s', '2015-10-26 10:00:00'))->modify('+5 minutes')->format('Ymd H:i:s') 

正如Brad和Nemoden在上面的回答中所指出的,strtotime()是一个很好的function。 就个人而言,我发现标准的DateTime对象在许多用例中过于复杂。 例如,我只想在当前时间添加5分钟。

我写了一个函数,返回一个date作为string与一些可选的参数:
1.)time:String | 例如:“+5分钟”(默认=当前时间)
2)格式:String | 例如:“Ymd H:i:s”(默认=“Ymd H:i:s O”)

显然,这不是一个全function的方法。 只是一个简单快捷的function来修改/格式化当前date。

 function get_date($time=null, $format='Ymd H:i:s O') { if(empty($time))return date($format); return date($format, strtotime($time)); } // Example #1: Return current date in default format $date = get_date(); // Example #2: Add 5 minutes to the current date $date = get_date("+5 minutes"); // Example #3: Subtract 30 days from the current date & format as 'Ymd H:i:s' $date = get_date("-30 days", "Ymd H:i:s"); 

一个函数的另一个例子:(改变时间和间隔格式,但是你喜欢他们根据这个function.date , 这是DateInterval ):

(我也写了下面的函数的替代forms 。)

 // Return adjusted time. function addMinutesToTime( $dateTime, $plusMinutes ) { $dateTime = DateTime::createFromFormat( 'Ymd H:i', $dateTime ); $dateTime->add( new DateInterval( 'PT' . ( (integer) $plusMinutes ) . 'M' ) ); $newTime = $dateTime->format( 'Ymd H:i' ); return $newTime; } $adjustedTime = addMinutesToTime( '2011-11-17 05:05', 59 ); echo '<h1>Adjusted Time: ' . $adjustedTime . '</h1>' . PHP_EOL . PHP_EOL; 

使用strtotime("+5 minute", $date);


例:

 $date = "2017-06-16 08:40:00"; $date = strtotime($date); $date = strtotime("+5 minute", $date); echo date('Ymd H:i:s', $date);