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'); // Outputs something like: 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 オブジェクトの変更まとめ:日付の計算自分で練習してみよう: PHPオンラインコンパイラ