最近在宅ワーク続きで、体が鈍ってきてるライカです。
一週間後や明日の日付を出したいけれど出し方がわからないという経験があると思います。
今回はPHP初心者に向けて、
明日や一週間後の日付を出力する方法
について解説していきたいと思います
PHP初心者がつまづきやすいポイントを分かりやすく解説します。
日時の操作方法がいまいちよく分からない方は、ぜひ最後まで読んで理解を深めてくださいね。
タイムスタンプについて
まずは、タイムスタンプについて確認しましょう。
PHPにおいて、日時の管理はUNIXタイムスタンプによって行われます。
UNIXタイムスタンプとは、協定世界時(UTC)と呼ばれる「1970年1月1日0時0分0秒」基準として、経過した秒数を数値化したものです。
タイムスタンプを取得するには、time関数やstrtotime関数を利用します。
今回は「strtotime」関数を詳しくみていきましょう。
strtotime関数
strtotime関数は引数を2つ持てる関数になります。
1 |
$time = strtotime('日付', 'タイムスタンプ'); |
引数1つの時は「現在」を基準とした「第一引数の日時」のタイムスタンプを出力します。
引数2つの時は「第二引数のタイムスタンプ」を基準とした「第一引数の日時」のタイムスタンプを出力します。
第一引数については、英文形式にて直接日時の指定ができるほか、「〜日後」や「〜時間前」など相対的な指定をすることもできます。
一週間後などの表現方法
では実際に一週間後の表示をしてみましょう
1 2 |
//現在日時が2020/1/1のとき echo date(“Y-m-d” , strtotime(‘+1 week’)); |
この様に表記することにより結果は
2020-01-08
となります。
strtotimeで+1 weekと表記することにより一週間後の日付を持ってくることができます。
その他、+1だけではなく+4や-3の様に+-や数字を変更することにより日時を操作出来ます。
表記 | 意味 |
---|---|
now | 現在の日時 |
+1 day | 日の表記 |
+1 week | 週の表記 |
+1 month | 月の表記 |
+1 year | 年の表記 |
+1 hour | 時間の表記 |
+1 minute | 分の表記 |
+1 second | 秒の表記 |
tomorrow | +1 dayと同じ |
yesterday | -1 dayと同じ |
これら以外にも、https://www.php.net/manual/ja/datetime.formats.php に日時の指定方法が記載されていますので、確認してみましょう。
まとめ
今回はstrtotime関数について、
- ・strtotime関数の使い方
- ・日時指定の書き方
を解説しました。
PHPにおいて日時の取得や操作は必要不可欠なものですので、しっかりと理解できるようにしておきましょう。