PHP での時間操作: H:i から 30 分の加算と減算
PHP では、時間関連のタスクを処理することがさまざまな用途で重要です。アプリケーション。一般的なシナリオの 1 つは、「H:i」としてフォーマットされた時間値を変更することです。この形式は、「10:00」や「13:30」など、時間を時と分で表します。
そのような値から特定の時間間隔を加算または減算するには、strtotime() および date( ) 機能。ただし、初期時刻値がタイムスタンプとして適切にフォーマットされていない場合、予期しない動作が発生する可能性があります。
2 つの新しい値を作成する例を考えてみましょう: $startTime $time 30 分前と $endTime 30 $time の数分後。ここで、$time の形式は「H:i」です。
以下のコード スニペットは、最初は合理的であるように思われるかもしれません:
<code class="php">$startTime = date("H:i",strtotime('-30 minutes',$time)); $endTime = date("H:i",strtotime('+30 minutes',$time));</code>
しかし、「10:00」を過ぎると$time として指定すると、予期しない結果が発生します。$startTime は意図した「09:30」ではなく「00:30」になり、$endTime は「10:30」ではなく「01:30」になります。
重要な問題は、$time がタイムスタンプであるという最初の仮定にあります。ただし、これは単に「H:i」としてフォーマットされた文字列です。これを解決するには、まず strtotime() 関数を使用して $time をタイムスタンプに変換する必要があります。
修正されたコード:
<code class="php">$time = strtotime('10:00'); $startTime = date("H:i", strtotime('-30 minutes', $time)); $endTime = date("H:i", strtotime('+30 minutes', $time));</code>
これで、結果は期待どおりになります: $startTimeは「09:30」、$endTimeは「10:30」になります。 $time が最初からタイムスタンプであることを保証することで、PHP で正確な時刻操作を実行できます。
以上がPHP で時刻形式を処理する場合、予期しない結果を避けるにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。