0

次のように、 MySQL の datetime formatで時間を取得します。

$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

Plsはそれを試してください

$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 に答える
0

を除いて、すべてが有効な5.2だと思いますDateTime::createFromFormat。日付形式について非標準的なものは何もありません。その行を削除して、次のdateTimeようにオブジェクトをインスタンス化します。

$date = new DateTime($time);

互換性を持たせるには、どの PHP バージョンが必要ですか? < 5.2?

于 2013-01-10T19:09:33.933 に答える