0

Suppose that I have datetime like 2013-01-16-0900. How can I subtract a length of time - say, 30 minutes?

4

3 に答える 3

0

あなたが投稿したのとまったく同じ文字列として保存されていますか、それとも実際にはUNIXタイムスタンプですか? それが実行できる文字列の場合は、それから (秒) をstrtotime減算し、 で元に変換します。それがおそらく最も簡単な方法でしょう。1800date()

于 2013-01-16T02:12:00.217 に答える
0

これにより、指定されたタイムスタンプから 30 分が差し引かれます。

echo date( 'Y-m-d-Hi', strtotime( $timestamp ) - 30 * 60 );

$timestamp = '2013-01-16-0900'この例では。

于 2013-01-16T02:16:32.473 に答える
0

私は、PHP の組み込みDateTime Moduleを使用し、PHP の組み込みDateInterval Moduleを使用して時間を加算または減算することを強く好みます。これにより、かなり複雑な日付/時刻の計算を実行しながら、時間の規則を尊重することができます。

また、注目すべきはDateTimeZoneです

時間の例

$dt = new DateTime("2013-01-16-0900", new DateTimeZone("America/Los_Angeles"));
$dt->setTimeZone("America/New_York");
$dt->sub(new DateInterval("PT30M"));
print $dt->format('Y-m-d H:i:s');

時間間隔の文字列を組み立てるには少し学習曲線がありますが、一度理解すれば、再利用可能な関数を作成できるはずです。

于 2013-01-16T03:07:24.167 に答える