最終更新日:
公開日:
レシピ
日付・時間の扱い
日付/時刻を取得する:getdate関数
getdate関数を使って、現在(または指定した時刻)の日付・時刻を取得する方法について解説します。
この記事のポイント
- 時刻情報を配列形式で取得する
- タイムスタンプを渡すと特定の日時の情報を取得できる
目次
現在の時刻を取得する
getdate関数を使うと、実行した時点の時刻を簡単に取得することができます。
コード例
getdate();
出力例
array(11) {
["seconds"]=> int(0)
["minutes"]=> int(30)
["hours"]=> int(12)
["mday"]=> int(14)
["wday"]=> int(4)
["mon"]=> int(2)
["year"]=> int(2019)
["yday"]=> int(44)
["weekday"]=> string(8)"Thursday"
["month"]=> string(8) "February"
[0]=> int(1550115000)
}
getdate関数は現時刻を取得しますが、タイムスタンプを渡すとその時刻の情報を取得することもできます。
返り値の内訳は次の内容になります。
キー | 内容 | 値の例 |
---|---|---|
seconds | 秒(int) | 0 |
minutes | 分(int) | 30 |
hours | 時(int) | 12 |
mday | 日(int) | 14 |
wday | 曜日(int) | 4 |
mon | 月(int) | 2 |
year | 年(int) | 2019 |
yday | 年初から経過した日数(int) | 44 |
weekday | 曜日の名称(string) | Thursday |
month | 月の名称(string) | February |
0 | タイムスタンプ(int) | 1550115000 |
少し似ていて間違いやすいのが「mday」と「yday」です。
「mday」は「2月14日」の場合における「14日」を指します。
一方の「yday」は年単位で何日経過したかの数値です。
また、経過した日数なので「0」が起点になっている点に注意してください。
例えば「1月1日」であれば経過した日数はない状態なので、「yday」には「0」が入ります。
1月31日なら「30」、12月31日であれば「364」が入ります。
タイムスタンプを渡して任意の時刻情報を取得する
getdate関数にタイムスタンプを渡すと、特定の日付の情報を取得することができます。
例えば、「2019年12月31日 10:00:00」の時刻情報を取得するには次のようにstrtotime関数と組み合わせて使用します。
コード例
// タイムスタンプを取得
$timestamp = strtotime("2019-12-31 10:00:00");
// 時刻の情報を取得
var_dump( getdate($timestamp));
出力例
array(11) {
["seconds"]=> int(0)
["minutes"]=> int(0)
["hours"]=> int(10)
["mday"]=> int(31)
["wday"]=> int(2)
["mon"]=> int(12)
["year"]=> int(2019)
["yday"]=> int(364)
["weekday"]=> string(7) "Tuesday"
["month"]=> string(8) "December"
[0]=> int(1577754000)
}
getdate関数は配列形式で値を取得することができますが、特定の時刻フォーマットで時刻を出力したい場合はdate関数の方が便利です。
こちらの関数の使い方につきましては、別記事「フォーマットを指定して日時を取得する:date関数」を参照ください。