✔️PHPを使って日付を抽出したい!
✔️date関数について学びたい!
今回はdate関数のご説明を致します。開発を進めていくと、日付に対するPHPの考え方を要求される場面が多々あります。
date関数を使えばさまざな日付操作や日付の比較を行うことができます。
是非ここでマスターしましょう!
関数の基礎に関しては下記の記事を参考にして下さい!
独学がつらくなった方は下記をご覧ください!
>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!
UNIXタイムスタンプ
date関数のお話の前にまずはUNIXタイムスタンプを理解しましょう。
UNIXタイムスタンプとは「協定世界時(UTC)を基準にした1970年1月1日の0時0分0秒からの経過秒数」を示しています。
これを使うことで、ある時点からある時点までの経過時間を秒で求めることが出来ます。
タイムスタンプの取得方法
タイムスタンプを取得するにはいくつか方法があります。
①time関数
②mktime関数
③strtotime関数
それぞれ解説していきます。
①time関数とは
time関数は現在のタイムスタンプを取得することができます。
使い方は下記の通りです。
time();
実際にtime関数を使ってみましょう!
サンプルコード
<?php
echo time();
?>
結果は下記の通りです。
こちらが現在のタイムスタンプになります。
②mktime関数とは
mktime関数は指定日時のタイムスタンプを取得することができます。
書き方は下記の通りです。
mktime(時,分,秒,月,日,年);
それでは実際にmktime関数を使ってみましょう!
例えば 2021年3月3日 3時3分3秒は下記のように記載します。
サンプルコード
<?php
echo mktime(3,3,3,3,3);
?>
結果は下記の通りです。
③strtotime関数とは
strtotime関数とはmktime関数と同様で指定日時のタイムスタンプを取得することができます。
strtotime関数は、英文形式の日付をタイムスタンプに変換して返します。
書き方は下記の通りです。
strtotime(英文形式の日付);
それでは実際にstrtotime関数を使ってみましょう!
mktime関数と同様に2021年3月3日 3時3分3秒のタイムスタンプを確認してみましょう!
サンプルコード
<?php
echo strtotime("2021-03-03 03:03:03");
?>
結果は下記の通りです。
mktime関数と値になりました!
現在時間から相対的な時間をタイムスタンプに変換する
strtotimeに現在時刻からの相対的な日時のタイムスタンプを取得したい場合は第一引数を相対日時を指定する「英文」で書きます。
具体例を見てみましょう!
サンプルコード
<?php
echo strtotime("now")."<br>"; //現在 time()と同義
echo strtotime("+3 day")."<br>"; //3日後 +は省略化
echo strtotime("-8 day")."<br>"; //8日前
echo strtotime("3 week")."<br>"; //3週間後
echo strtotime("3 week 4 day 5 hours 10 second");//3週間4日5時間10秒後
?>
結果は下記の通りです。
date関数とは
本題のdate関数です。
date関数とはタイムスタンプを日付文字列で返すことができる関数です。タイムスタンプとは先ほどご説明した、UNIXタイムスタンプのことです。
書き方は下記の通りです。
<?php
date(フォーマット形式[,タイムスタンプ]);
?>
実際の例を見てみましょう!
サンプルコード
<?php
//現在の日時を取得
echo date('Y/m/d', time());
echo '<br>';
echo date('Y/m/d');
?>
結果は下記の通りです。
2つ目の構文では第2引数のタイムスタンプを省略しましたが、time関数を引数に取ったときと同じ日付を表示しています。
フォーマットの際に使用される文字列は下記の通りです。
項目 | フォーマット | 説明 |
年 | Y | 西暦(4桁) |
y | 西暦(2桁) | |
月 | m | 月(2桁) |
n | 月(先頭の0なし) | |
M | 英語(略語) | |
F | 英語 | |
日 | d | 日(2桁) |
j | 日(先頭の0なし) | |
t | その月の日数 | |
z | その年の経過日数 | |
曜日・週 | D | 英語(略語) |
l | 英語 | |
w | 曜日 (日曜0→土6) | |
W | その年の経過週 (月曜開始) | |
時間 | H | 24時間単位 |
G | 24時間単位 (先頭の0なし) | |
h | 12時間単位 | |
g | 12時間単位 (先頭の0なし) | |
a | 午前/午後(小文字) | |
A | 午前/午後(大文字) | |
分 | i | 分(2桁) |
秒 | s | 秒(2桁) |
月末、月初の取得方法は下記の記事を参考にして下さい!
>>【PHPの基礎】月初日と月末日の取得方法をマスターしよう!
独学でツラくなった方へ
- 将来のキャリアに不安を感じるが、何から始めていいかわからない。。
- 仕事が忙しいため両立できるか不安。
- 効率よくスキルを身につけたい
- 完全未経験からエンジニアを目指したい方へ!カウンセリング受講者の97%以上が未経験者で安心です。
- 「就業両立コース」で、仕事と両立して効率よくスキルを身につけることができます!
- キャリアイメージ、スキル習得など、無料カウンセリングで、今悩んでいることを気軽にプロに相談できます
まとめ
✅PHPを使って日付を抽出する方法
✅date関数の基礎
今回の説明は以上になります!
date関数は実際の開発でも大変よく使われます。タイムスタンプの考え方も大変重要なので、是非今回でマスターしましょう!