日付・時刻関数
| 解説 | 指定した日時のUNIXタイムスタンプを取得する |
|---|---|
| 書式 | int mktime( [ int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst ]]]]]]] ) |
int mktime( [ int 時 [, int 分 [, int 秒 [, int 月 [, int 日 [, int 年 [, int サマータイムフラグ ]]]]]]] ) |
|
| 引数 |
hour
時
|
minute
分
|
|
second
秒
|
|
month
月
|
|
day
日
|
|
year
年:2桁または4桁で指定
|
|
is_dst
サマータイムなら1 違うなら0 不明なら-1
|
|
| 返値 | 指定した日時に基づいたUNIXタイムスタンプ |
mktime()は、引数で指定した日時のタイムスタンプを取得します。
hour
時
minute
分
second
秒
month
月
day
日
year
年
is_dst
サマータイムフラグ
※サマータイムフラグはPHP5.1.0で廃止されました。
※負の値のタイムスタンプはWindowsでサポートされていないため、Windows環境での年の有効範囲は1970年から2038年の間です。
※year(年)、month(月)、day(日)をゼロとした日付は不正と判定されます。
mktime()は日付の有効性を確認しています。範囲外の値があった場合は自動的に計算して修正します。
月の最後の日は次の月の「0」番目の日として返すことができます。例えば、3月31日は日の引数が「0」月の引数が「4」としても表す事ができます。
mktime()は指定した日付のUNIXタイムスタンプを取得するのに対して、time()は現在のUNIXタイムスタンプを取得します。
参考関数
date()---- 日付・時刻を書式化するtime()---- 現在のUnixタイムスタンプを取得するgmmktime()---- GMTで指定した日時のUNIXタイムスタンプを取得する
サンプルスクリプト
簡単な利用例
<?php
echo mktime();
?>
出力結果
1228165526
引数をすべて省略しているので現在時刻のタイムスタンプが返ってくる。分かりやすい形式にするにはdate()関数を使う。
2010年の元旦の曜日
<?php
echo date( "l", mktime(0,0,0,1,1,2010) );
?>
出力結果
Friday
date()関数の引数 l(小文字のエル)は曜日を取得します。
mktime()関数による日付の有効性の確認
<?php
// 8月32日と指定してみると・・・・
$date = mktime(0,0,0,8,32);
echo date( "n月j日", $date );
?>
出力結果
9月1日
mktime()は日付の計算をしてくれるので、8月32日などと指定した場合でも有効な日付を返してくれます。
月の最後の日は次の月の0日目
<?php
// 4月の0日と指定してみる
echo date( "n月j日", mktime(0,0,0,4,0) );
?>
出力結果
3月31日


