2009-08-23 7 views
3

イベントカレンダーを作成し、PHPに開始時間を2009-09-25 15:00:00の形式で渡します。期間も同様に60分または3時間の形式になります。時間から分への変換は問題ではありません。終了時間を正しくフォーマットするために、確立された開始点にどのくらいの時間を追加しますか?開始時間と継続時間に基づいて終了時間をどのように計算しますか?

答えて

7

あなたはタイムスタンプに現在の時刻(2009年9月25日15時00分00秒)に変換してから追加することができますstrtotime()を使用します* 60 * 3 = 3hrs)をタイムスタンプに追加します。最後に、必要なときにそれを元に戻してください。 Xeoncrossの良いstrtotime答え@への補遺として

//Start date 
$date = '2009-09-25 15:00:00'; 
//plus time 
$plus = 60 * 60 * 3; 
//Add them 
$time = strtotime($date) + $plus; 
//Print out new time in whatever format you want 
print date("F j, Y, g:i a", $time); 
+0

このソリューションをお勧めします。 – dusoft

+0

私はこれを使って、日付フォーマットを 'Y-m-d h:i:s'に変更しました。 –

9

簡単な方法あなたは十分に高いバージョン番号を持っている場合:(60

$when = new DateTime($start_time); 
$when->modify('+' . $duration); 
echo 'End time: ' . $when->format('Y-m-d h:i:s') . "\n"; 
+1

これは私のために働いたが、追加しなければならなかった。期間は秒単位で保存されていたため、$ durationの後に 'seconds'が表示されます。 –

0

strtotime()は、「2009年9月25日3時間」、「9月25日6日」、「次の月曜日」、「先週の金曜日」のようなフォーマットをサポートし、 "-15分"など。

関連する問題