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