Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从datetime字符串中减去一个小时,例如:“1”;2017-04-20 11:46:00“;并在PHP中将其转换回字符串?_Php_Datetime - Fatal编程技术网

如何从datetime字符串中减去一个小时,例如:“1”;2017-04-20 11:46:00“;并在PHP中将其转换回字符串?

如何从datetime字符串中减去一个小时,例如:“1”;2017-04-20 11:46:00“;并在PHP中将其转换回字符串?,php,datetime,Php,Datetime,我需要从字符串“2017-04-20 11:46:00”中减去一小时,然后将其转换回相同的格式。 我试过下面的函数 <?php $date = new DateTime('2017-04-20 11:46:00'); $tosub = new DateInterval('PT01H00M'); $result =date_format($tosub,"Y-m-d H:i:s"); echo $result; ?> 您需要先应用减法函数,然后转换为所需格式 $date =

我需要从字符串“2017-04-20 11:46:00”中减去一小时,然后将其转换回相同的格式。 我试过下面的函数

<?php
$date = new DateTime('2017-04-20 11:46:00');
$tosub = new DateInterval('PT01H00M');
$result =date_format($tosub,"Y-m-d H:i:s");
echo $result;
?>

您需要先应用减法函数,然后转换为所需格式

$date    =    new DateTime('2017-04-20 11:46:00');
$tosub   =    new DateInterval('PT01H00M');
$result  =    $date->sub($tosub);       // Add subtract function
echo $result->format("Y-m-d H:i:s");    

这是一个单行程序,可将示例日期时间减少1小时:

代码:

输出:

2017-04-20 10:46:00

你可以用
DateInterval
DateTime
中减去
DateInterval
,我最喜欢这个答案,因为它是一行,很容易阅读(与
DateInterval
相比)@哈里什:我推荐这种方法。
2017-04-20 10:46:00
$date = date('Y-m-d H:i:s');
$time = strtotime($date);
$time = $time - (60*60); //one hour
echo $new_date = date("Y-m-d H:i:s", $time);