DateTime オブジェクト入門
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 48/68。
date()、time()、および strtotime() のような手続き型の関数は、基本的な日付操作には適していますが、PHPは DateTime クラスを通じて、より強力で柔軟なアプローチを提供しています。このオブジェクト指向の方法は、日付や時刻を扱うための、より優れた構成、明確な構文、および高度な機能を提供します。
DateTimeクラスは、特定の瞬間をオブジェクトとして表します。これにより、さまざまなメソッドを使用して操作やフォーマットを行うことができます。個別のタイムスタンプやフォーマット文字列を扱う手続き型の関数とは異なり、DateTimeオブジェクトは、日付/時刻データとそのデータに対して実行できる操作の両方をカプセル化します。
<?php
$now = new DateTime();
echo $now->format('Y-m-d H:i:s'); // 次のように出力されます: 2024-03-15 14:30:25
?>パラメータなしで新しい DateTime オブジェクトを作成すると、自動的に現在の日時に設定されます。
オブジェクト指向のアプローチは、特に同じ日付に対して複数の操作を行う必要がある場合に、コードの可読性と保守性を向上させます。より複雑な日付計算やフォーマット要件を扱うようになると、これが特に役立つことに気づくでしょう。
チャレンジ
簡単1つの入力を受け取ります。それは Y-m-d H:i:s 形式の日付文字列です(例:2024-03-15 14:30:25)。
入力された日付文字列を読み込み、この日付文字列をパラメータとして DateTime オブジェクトを作成し、その DateTime オブジェクトを直接出力してください。
日付文字列をパラメータとして DateTime オブジェクトを作成すると、現在の日時ではなく、その特定の時点を表します。オブジェクトを表示するには、単に echo してください。
入力形式: Y-m-d H:i:s 形式の日付文字列を含む1行(例:2024-03-15 14:30:25)
期待される出力: Y-m-d H:i:s 形式でフォーマットされた日時
自分で試してみよう
<?php
// 入力された日付文字列を読み込む
$dateString = trim(fgets(STDIN));
// TODO: 日付文字列を使用して DateTime オブジェクトを作成し、それを表示する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
7日付と時刻の操作
'date()' 関数'time()' による Unix タイムスタンプDateTime オブジェクト入門DateTime オブジェクトのフォーマットDateTime オブジェクトの変更まとめ:日付の計算