PHPのstrtotimeが優秀すぎる使い方完全解説初心者でもわかる日付文字列変換とnextMondayの使い方
生徒
「PHPで日付を扱うときに、文字から日付に変換する方法ってありますか?」
先生
「ありますよ。strtotimeという関数を使うと、文字列から日付を簡単に変換できます。」
生徒
「nextMondayみたいな書き方もできるって聞いたんですが本当ですか?」
先生
「本当です。人間が読むような自然な言葉でも日付に変換できます。それでは基本から見ていきましょう。」
1. strtotimeとは何か
strtotimeとは、文字列で書かれた日付や時間をタイムスタンプという数値に変換するPHPの関数です。このタイムスタンプを使うことで、日付の計算や比較が簡単にできるようになります。
初心者の方は、日付をコンピュータが理解できる数字に変換する機能と考えると分かりやすいです。人間は文字で日付を理解しますが、プログラムは数値で扱うことで正確に処理できます。
strtotimeは非常に柔軟で、多くの書き方に対応しているため、日付処理の基本としてよく使われます。
2. 基本的な使い方
まずはstrtotimeの基本的な使い方を見てみましょう。文字列の日付を変換して表示します。
$time = strtotime('2024-01-01');
echo date('Y-m-d', $time);
2024-01-01
このように文字列をタイムスタンプに変換し、date関数で表示することで日付として扱えます。
3. 自然な英語で日付を指定する
strtotimeの大きな特徴は、人間が理解しやすい英語の表現をそのまま使える点です。例えば明日や来週なども簡単に指定できます。
echo date('Y-m-d', strtotime('tomorrow'));
echo date('Y-m-d', strtotime('next week'));
翌日と来週の日付が表示される
このように自然な表現で日付を扱えるため、コードが分かりやすくなります。
4. nextMondayの使い方
特定の曜日を指定することも可能です。例えばnextMondayと書くことで次の月曜日の日付を取得できます。
echo date('Y-m-d', strtotime('next Monday'));
次の月曜日の日付が表示される
曜日指定はスケジュール管理などで非常に便利な機能です。
5. 日付の加算と減算
strtotimeでは日付の加算や減算も簡単に行えます。例えば三日後や一週間前などを計算できます。
echo date('Y-m-d', strtotime('+3 days'));
echo date('Y-m-d', strtotime('-1 week'));
三日後と一週間前の日付が表示される
このように簡単な計算を文字列で表現できるのが特徴です。
6. 現在時刻との組み合わせ
strtotimeは現在時刻と組み合わせて使うことが多いです。time関数と合わせて使うことで基準を変えることもできます。
$now = time();
echo date('Y-m-d', strtotime('+1 day', $now));
翌日の日付が表示される
このように基準を指定することで柔軟な処理が可能になります。
7. strtotimeを使うメリット
strtotimeを使うことで、複雑な日付計算を簡単に実装できます。特に英語表現で日付を扱えるため、コードが直感的で読みやすくなります。
また、DateTimeクラスと組み合わせることでさらに高度な日付処理が可能になります。初心者の方でもすぐに使える点が大きなメリットです。
8. 初心者が意識すべきポイント
まずはtomorrowやnextMondayなどの基本的な書き方を覚えることが大切です。これだけでも日付処理の幅が大きく広がります。
また、strtotimeは便利ですが、曖昧な表現を使うと意図しない結果になることもあるため、慣れるまではシンプルな表現を使うようにしましょう。