カテゴリ: PHP 更新日: 2026/07/19

PHPのstrtotimeが優秀すぎる使い方完全解説初心者でもわかる日付文字列変換とnextMondayの使い方

PHPのstrtotime()が優秀すぎる!「next Monday」などの文字列から変換
PHPのstrtotime()が優秀すぎる!「next Monday」などの文字列から変換

先生と生徒の会話形式で理解しよう

生徒

「PHPで日付を扱うときに、文字から日付に変換する方法ってありますか?」

先生

「ありますよ。strtotimeという関数を使うと、文字列から日付を簡単に変換できます。」

生徒

「nextMondayみたいな書き方もできるって聞いたんですが本当ですか?」

先生

「本当です。人間が読むような自然な言葉でも日付に変換できます。それでは基本から見ていきましょう。」

1. strtotimeとは何か

1. strtotimeとは何か
1. strtotimeとは何か

strtotimeとは、文字列で書かれた日付や時間をタイムスタンプという数値に変換するPHPの関数です。このタイムスタンプを使うことで、日付の計算や比較が簡単にできるようになります。

初心者の方は、日付をコンピュータが理解できる数字に変換する機能と考えると分かりやすいです。人間は文字で日付を理解しますが、プログラムは数値で扱うことで正確に処理できます。

strtotimeは非常に柔軟で、多くの書き方に対応しているため、日付処理の基本としてよく使われます。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

まずはstrtotimeの基本的な使い方を見てみましょう。文字列の日付を変換して表示します。


$time = strtotime('2024-01-01');

echo date('Y-m-d', $time);

2024-01-01

このように文字列をタイムスタンプに変換し、date関数で表示することで日付として扱えます。

3. 自然な英語で日付を指定する

3. 自然な英語で日付を指定する
3. 自然な英語で日付を指定する

strtotimeの大きな特徴は、人間が理解しやすい英語の表現をそのまま使える点です。例えば明日や来週なども簡単に指定できます。


echo date('Y-m-d', strtotime('tomorrow'));
echo date('Y-m-d', strtotime('next week'));

翌日と来週の日付が表示される

このように自然な表現で日付を扱えるため、コードが分かりやすくなります。

4. nextMondayの使い方

4. nextMondayの使い方
4. nextMondayの使い方

特定の曜日を指定することも可能です。例えばnextMondayと書くことで次の月曜日の日付を取得できます。


echo date('Y-m-d', strtotime('next Monday'));

次の月曜日の日付が表示される

曜日指定はスケジュール管理などで非常に便利な機能です。

5. 日付の加算と減算

5. 日付の加算と減算
5. 日付の加算と減算

strtotimeでは日付の加算や減算も簡単に行えます。例えば三日後や一週間前などを計算できます。


echo date('Y-m-d', strtotime('+3 days'));
echo date('Y-m-d', strtotime('-1 week'));

三日後と一週間前の日付が表示される

このように簡単な計算を文字列で表現できるのが特徴です。

6. 現在時刻との組み合わせ

6. 現在時刻との組み合わせ
6. 現在時刻との組み合わせ

strtotimeは現在時刻と組み合わせて使うことが多いです。time関数と合わせて使うことで基準を変えることもできます。


$now = time();
echo date('Y-m-d', strtotime('+1 day', $now));

翌日の日付が表示される

このように基準を指定することで柔軟な処理が可能になります。

7. strtotimeを使うメリット

7. strtotimeを使うメリット
7. strtotimeを使うメリット

strtotimeを使うことで、複雑な日付計算を簡単に実装できます。特に英語表現で日付を扱えるため、コードが直感的で読みやすくなります。

また、DateTimeクラスと組み合わせることでさらに高度な日付処理が可能になります。初心者の方でもすぐに使える点が大きなメリットです。

8. 初心者が意識すべきポイント

8. 初心者が意識すべきポイント
8. 初心者が意識すべきポイント

まずはtomorrowやnextMondayなどの基本的な書き方を覚えることが大切です。これだけでも日付処理の幅が大きく広がります。

また、strtotimeは便利ですが、曖昧な表現を使うと意図しない結果になることもあるため、慣れるまではシンプルな表現を使うようにしましょう。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルートとコントローラを対応付ける方法(名前付きルート)を初心者向けに解説
New2
Symfony
Symfonyで画像やファイルをアップロードする時のバリデーション完全ガイド!初心者でもわかる入力チェックの基本
New3
Laravel
Laravelで言語切替UIを作る!多言語対応(ローカリゼーション)実践ガイド
New4
CodeIgniter
CodeIgniterでローカル開発環境を構築する方法!初心者向け完全ガイド
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのキャッシュ管理を完全ガイド!初心者でもわかるメリットと注意点
No.2
Java&Spring記事人気No2
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.3
Java&Spring記事人気No3
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
No.4
Java&Spring記事人気No4
CodeIgniter
CodeIgniterとは?特徴・できること・他PHPフレームワークとの違いを完全解説
No.5
Java&Spring記事人気No5
Laravel
Laravelローカリゼーション入門!言語の取得と切り替え(App::getLocale / setLocale)を徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.7
Java&Spring記事人気No7
Symfony
TwigのHTMLエスケープとrawフィルタの使い方を完全解説!初心者にもわかるテンプレート表示のコツ
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterのビュー共通化ガイド!初心者でもわかる部分ビューの読み込みとinclude設計