计算时间后的另一个时间- mysql日期时间格式


Calculating time after another time - mysql datetime format

我们已经得到了MySQL datetime格式的时间,如:

$time = date("Y-m-d H:i:s");
$period = "+1 month";

现在我们想要计算'N天'之后,事情是,我想要新的计算时间也在MySQL日期时间格式,所以我创建了这个函数:

// From a date to period date based on date
function fromTime($time, $period){
    $date = DateTime::createFromFormat( 'Y-m-d H:i:s', $time);
    $date->modify($period);
    return $date->format('Y-m-d H:i:s');
}

它在我的本地主机上工作得很好,因为我使用PHP> 5.3,但在我的真实服务器上它不工作,我得到这个错误:

Fatal error: Call to undefined method DateTime::createFromFormat() in /home/blah/public_html/includes/functions.php on line 38

第38行是fromTime函数。

我需要如何改变这个函数,使它也适用于PHP <5.3

UPDATE: OP正在寻找在<</strong>

不使用DateTime类,您可以使用较旧的内置日期操作函数,如strtotime()

function fromTime($time, $period) {
    return date("Y-m-d H:i:s", strtotime($period, strtotime($time)));
}

我认为一切都是有效的5.2除了DateTime::createFromFormat。日期格式没有任何不标准的地方。我会说删除这一行并实例化dateTime对象,如:

$date = new DateTime($time);

您需要与哪个PHP版本兼容?& lt;5.2 ?

请尝试一下

$d = new DateTime( date("Y-m-d H:i:s") );
$d->modify( 'next month' );
echo $d->format( 'Y-m-d H:i:s' ), "'n";