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

时间:2013-01-10 19:04:16

标签: php datetime

我们有时间采用 MySQL日期时间格式,例如:

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

现在我们要在此时间之后计算' N Days ',问题是我希望新的计算时间也是 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');
}

它在我的localhost上运行正常,因为我正在使用 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

更新:OP正在寻找适用于<准确地说,5.2。

3 个答案:

答案 0 :(得分:1)

您可以使用较早的内置日期操作函数,例如strtotime(),而不是使用DateTime类。

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

答案 1 :(得分:0)

除了DateTime::createFromFormat之外,我认为一切都是有效的5.2。日期格式没有任何标准。我会说删除该行并将dateTime对象设置为:

$date = new DateTime($time);

您需要哪些PHP版本才能兼容? < 5.2

答案 2 :(得分:0)

请尝试一下

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