私が扱っている日時文字列の例を次に示します。
Tue May 15 10:14:30 +0000 2012
これに1時間を追加する私の試みは次のとおりです。
$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->add(new DateInterval('P1h'));
しかし、2 行目で、変換できなかったというエラーが表示されます。
ありがとう。
私が扱っている日時文字列の例を次に示します。
Tue May 15 10:14:30 +0000 2012
これに1時間を追加する私の試みは次のとおりです。
$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->add(new DateInterval('P1h'));
しかし、2 行目で、変換できなかったというエラーが表示されます。
ありがとう。
T
時間指定部分の前に追加する必要があります。
$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->add(new DateInterval('PT1H'));
DateInterval
コンストラクターのドキュメントを参照してください。
形式は、「ピリオド」を表す文字 P で始まります。各期間は、整数値とそれに続く期間指定子で表されます。期間に時間要素が含まれる場合、仕様のその部分の前に文字 T が付きます。
(強調を追加)
以前の回答は正常に機能します。ただし、通常、外部でホストされている Web サイトでは datetime の変更を使用します。詳細については、 php のマニュアルを参照してください。提案されたコードでは、次のように動作するはずです。
$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->modify('+ 1 hour');
オブジェクト指向を使用していない場合は、次のように使用してください (最初の行の DateTime は、このスレッドに何か新しいものをもたらすためだけに、サーバーの時間を確認するために使用します)。
$dt = new DateTime("@".$_SERVER['REQUEST_TIME']); // convert UNIX epoch to PHP DateTime
$dt = date_modify($dt, "+1 hour");
一番、
使用strtotime()
:
$time = 'Tue May 15 10:14:30 +0000 2012';
$time = strtotime($time) + 3600; // Add 1 hour
$time = date('D M j G:i:s O Y', $time); // Back to string
echo $time;