作成日:2006/05/10
1X その他のよく使う関数
1X.1 日付/時刻
| 構文 | 説明 | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
int time ( void ) |
現在時刻をUnixエポック(1970年1月1日 00:00:00 GMT)からの通算秒 として返します。 用例:
$nextWeek = time() + (7 * 24 * 60 * 60); // 来週
echo date('Y-m-d', $nextWeek);
|
||||||||||||||||||||||||||||||||||||
array getdate ([int timestamp]) |
timestamp に対する日付情報の連想配列を返します。 timestamp が省略された場合は、現在のローカル時刻に対する情報を返します。 返される連想配列:
|
||||||||||||||||||||||||||||||||||||
int mktime ([int hour [,int minute [,int second [,int month [,int day [,int year [,int is_dst]]]]]]] ) |
引数で指定された日時のタイムスタンプを返します。 このタイムスタンプは、Unixエポック(1970年1月1日 00:00:00 GMT)からの通算秒を表す長整数です。 省略された引数は、ローカルの日付と時刻に従って、現在の値にセットされます。 is_dst はサマータイムの時に 1 にセットされ、そうでない時に 0 に、 サマータイムであるかどうかが不明である場合に -1 にセットされます。 mktime() は範囲外の入力を自動的に修正して計算します。 用例:全て2000-01-01
mktime (0,0,0,1, 1,2000); // 2000-01-01 mktime (0,0,0,12,32,1999); // 1999-12-32 =>2000-01-01 mktime (0,0,0,13, 1,1999); // 1999-13-01 =>2000-01-01 指定した月(month)の0番目の日は、前月の最後の日を表します。 用例:
mktime (0,0,0,1, 0,2000); // 2000-01-00 =>1999-12-31 mktime (0,0,0,13,0,1999); // 1999-13-00 =>1999-12-31 $now = getdate(); mktime (0,0,0,$now['mon'], 1, $now['year']); // 当月1日 mktime (0,0,0,$now['mon']+1,0, $now['year']); // 当月最後の日 |
||||||||||||||||||||||||||||||||||||
int checkdate ( int month, int day, int year ) |
引数で指定された日付(month/day/yaer)が有効であれば TRUE を返し、そうでなければ FALSE を返します。 妥当性は 以下の事から判断されます。
|
||||||||||||||||||||||||||||||||||||
string date ( string format [,int timestamp] ) |
指定された timestamp を、文字列 format によりフォーマットした日付文字列を返します。 timestamp が省略された場合は、現在のローカル時刻(time()の値)が使われます。 用例:
// 現在の日時をYYYY:MM:DD HH:MM:SSで表示する
echo date('Y/m/d H:i:s');
// 明日
mktime(0,0,0, date("m",$now), date("d",$now)+1,date("Y",$now) );
// 前月
mktime(0,0,0, date("m",$now)-1,date("d",$now), date("Y",$now) );
// 来年
mktime(0,0,0, date("m",$now), date("d",$now), date("Y",$now)+1);
※ date関数の書式文字(format)については以下を参照して下さい。 |
date関数の書式文字:
| 書式文字 | 説明 | 返される値の範囲 または 例 |
|---|---|---|
| 良く使う日付・時刻の書式 | ||
y | 年 (2 桁の数字) | 例: 99 または 03 |
Y | 年 (4 桁の数字) | 例: 1999 または 2003 |
n | 月 (先頭にゼロを付けない) | 1 〜 12 |
m | 月 (先頭にゼロを付ける) | 01 〜 12 |
M | 月 (3文字形式) | Jan 〜 Dec |
F | 月 (フルスペル形式) | January 〜 December |
j | 日 (先頭にゼロを付けない) | 1 〜 31 |
d | 日 (先頭にゼロを付ける) | 01 〜 31 |
w | 曜日 (数値) | 0 (日曜) 〜 6 (土曜) |
D | 曜日 (3文字形式) | Mon 〜 Sun |
l | 曜日 (フルスペル形式) | Sunday 〜 Saturday |
a | 午前または午後 (小文字) | am または pm |
A | 午前または午後 (大文字) | AM または PM |
g | 時。12時間単位 (先頭にゼロを付けない) | 1 〜 12 |
G | 時。24時間単位 (先頭にゼロを付けない) | 0 〜 23 |
h | 時。12時間単位 (先頭にゼロを付ける) | 01 〜 12 |
H | 時。24時間単位 (先頭にゼロを付ける) | 00 〜 23 |
i | 分 (先頭にゼロを付ける) | 00 〜 59 |
s | 秒 (先頭にゼロを付ける) | 00 〜 59 |
| その他の書式 | ||
B | Swatchのインターネット時間 | 000 〜 999 |
I | サマータイム中か否か | 1:サマータイム中 0:そうではない |
L | 閏年であるかどうかを表す論理値 | 1:閏年 0:閏年でない |
O | グリニッジ標準時(GMT)との時間差 | 例: +0200 |
r | RFC 822 フォーマットされた日付 | 例: Thu, 21 Dec 2000 16:01:07 +0200 |
S | 英語形式の序数を表すサフィックス 2文字 jと一緒に使用することができる | st, nd, rd または th |
t | 指定した月の日数 | 28 〜 31 |
T | このマシーンのタイムゾーンの設定 | 例: EST, MDT ... |
U | Unix 時(1970年1月1日0時0分0秒)からの秒数 | |
W | ISO-8601 月曜日に始まる年単位の週番号 | 例: 42 (1年の第42週目) |
z | 年間の通算日(数字) | 0 〜 366 |
Z | タイムゾーンのオフセット秒数 UTC西側のオフセットは負、UTC東側のオフセットは正です | -43200 〜 43200 |
- GMTとUTC
- GMT(グリニッジ標準時) は天体観測によって時刻を定めている時刻です。GMTの他にUTC(世界協定時)というのがあります。 UTCは原子時計と(潮力による地球自転の遅延を補正する為の)閏秒によって時刻を定めています。
