2012-05-15 2 views
9

は、私が働いている日時文字列の例です:ここでこのdatetime文字列の時間に時間を追加するにはどうすればよいですか?ここ

Tue May 15 10:14:30 +0000 2012 

は、その上に時間を追加する私の試みです:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->add(new DateInterval('P1h')); 

しかし、2行目は、「それはcouldnエラーになります変換される。

ありがとうございました。あなたは時間指定部分の前にTを追加する必要があります

答えて

46

フォーマットのために、文字Pで始まる:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->add(new DateInterval('PT1H')); 

DateIntervalconstructorのドキュメントを参照してください "期間"。各期間は整数値で表され、その後に期間指定子が続きます。 時間に時間要素が含まれている場合、仕様のその部分は、の前にTの文字が続きます。

strtotime()を使用して

+0

1 DateIntervalが常に好ましいです。 –

2

(強調は追加):

$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; 
8

前の答えが働きます。しかし、私は通常、外部からホストされているWebサイトで日時変更を使用します。詳細については、php manualを参照してください。 コード提案と、それは次のように動作するはずです:ちょうど私は、サーバーをチェックするためにそれを使用し、ちょうどこのスレッドに新しいsomethngをもたらすために、この方法(最初の行のDateTimeそれを使用し、オブジェクト指向を使用していない方のため

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->modify('+ 1 hour'); 

時間):

$dt = new DateTime("@".$_SERVER['REQUEST_TIME']); // convert UNIX epoch to PHP DateTime 
$dt = date_modify($dt, "+1 hour"); 
ベスト

関連する問題