6

string私は私のphp配列にこのオブジェクトを持っています

"2013-03-05 00:00:00 + 00"

PHP内のエントリに12時間を追加してから、同じ形式で文字列に保存し直したいと思います

これには、文字列を日付オブジェクトに変換することが含まれると思います。しかし、日付オブジェクトがどれほど賢いのか、フォーマットパラメータを指定する必要があるのか​​、それとも文字列だけを受け取ることになっているのかはわかりません。

$date = new DateTime("2013-03-05 00:00:00+00");
$date->add("+12 hours");
//then convert back to string or just assign it to a variable within the array node

このメソッドまたは試した同様のメソッドから空の値を取得していました

この問題をどのように解決しますか?

ありがとう、あなたの洞察は高く評価されています

4

4 に答える 4

21

に変更add()modify()ます。add()DateIntervalオブジェクトが必要です。

<?php
$date = new DateTime("2013-03-05 00:00:00+00");
$date->modify("+12 hours");
echo $date->format("Y-m-d H:i:sO");

実際に見てください

DateIntervalオブジェクトを使用した例を次に示します。

<?php
$date = new DateTime("2013-03-05 00:00:00+00");
$date->add(new DateInterval('PT12H'));
echo $date->format("Y-m-d H:i:sO");

実際に見てください

于 2013-03-05T16:20:28.603 に答える
2

この行を変更します

$date->add("+12 hours");

$date->add(new DateInterval("PT12H"));

これにより、日付が12時間長くなります

文字列の作成方法については、DateIntervalコンストラクターページをご覧ください。DateInterval

于 2013-03-05T16:28:34.713 に答える
2

これを使用して時間を追加し、

$date1= "2014-07-03 11:00:00";
$new_date= date("Y-m-d H:i:s", strtotime($date1 . " +3 hours"));
echo $new_date;
于 2014-07-12T02:20:48.400 に答える
0

動的な間隔がある場合、この方法により、$dateDiffの誤った形式のエラーを回避できます。

$dateDiff = "12 hours";
$interval = DateInterval::createFromDateString($dateDiff);
$date = new DateTime("2013-03-05 00:00:00+00");
$date->add($interval);
echo $date->format("Y-m-d H:i:sO");
于 2017-02-21T09:17:51.147 に答える