0

我们有一个MySQL 日期时间格式的时间,例如:

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

现在我们想在这个时间之后计算' N Days ',问题是我想要新的计算时间也是MySQL datetime 格式,所以我创建了这个函数:

// 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

更新: OP 正在寻找适用于 < 5.2 的解决方案。

4

3 回答 3

1

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

function fromTime($time, $period) {
    return date("Y-m-d H:i:s", strtotime($period, strtotime($time)));
}
于 2013-01-10T19:08:14.400 回答
0

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

$date = new DateTime($time);

您需要它与哪个 PHP 版本兼容?< 5.2?

于 2013-01-10T19:09:33.933 回答
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";
于 2013-01-10T19:17:28.273 回答