■現在の時刻を得る
time(); で現在のUNIXタイムを返しますので整形したい場合は
date(stringformat[,inttimestmp]) とする事で得ることが出来ます。
[,inttimestmp]はオプションでデフォルトはtime()の値。
フォーマット一覧
※■の文字色は説明文
スクリプト例:
<?PHP
$date=date('Y年m月d日
h時i分s秒');
print
$date;
?>
出力結果:
2005年9月1日 12時50分 ←本日の日時
|
■日時をUNIXタイムスタンプへまたはUNIXタイムスタンプを日時へ
日時をUNIXタイムスタンプに変更する場合は mktime (時,分,時,月,日,年) という関数を使用すると簡単に得ることができます。
※■の文字色は説明文
スクリプト例:2005年3月7日10時5分30秒の場合
<?PHP
$timestmp=mktime(10,5,30,3,7,2005);
print $timestmp;
?>
出力結果:
1110157530 ←指定日のUNIXタイムスタンプ
|
UNIXタイムスタンプから日時へは”現在の時刻”で扱った date関数により整形
※■の文字色は説明文
スクリプト例:1110157530を変換
<?PHP
$date=date('Y年m月d日 h時i分s秒',1110157530);
print $date;
?>
出力結果:
2005年03月7日 10時05分30秒 ←指定のUNIXタイムスタンプを元にした日時
|
■未来、過去の時間を得る
日時をUNIXタイムスタンプへででてきたmktime
(時,分,時,月,日,年) を使用すると、指定日時のUNIXタイムスタンプを得ることができ、
mktime()は日付の有効性を確認しますので、
date()関数と組み合わせると整形された目的の日時を得ることが出来ます。
どういうことかというと、2005年3月27日から一週間後の日時(曜日)を求める場合、mktime(0,0,0,3,27+7,2005)とし、date('Ymd',mktime(0,0,0,3,27+7,2005))に組み込むとちゃんとした7日後の2005年4月3日を返してくれます。
※■の文字色は説明文
スクリプト例:2005年3月27日0時0分0秒から7日後
<?PHP
$date=date('Y年m月d日
h時i分s秒
',mktime(0,0,0,3,27+7,2005));
print $date;
?>
出力結果:
2005年04月3日 0時0分0秒
|
上記の例はあらかじめ決められた日付からの変更ですが、"現在"からとなると当然現時点での時刻データが必要になります。
date()関数でも求められますが、スマートにならないので、ここは getdate() 関数を利用して、配列に時刻データを一気に取り込み利用します。
※■の文字色は説明文
スクリプト例:現在日時から7日後
<?PHP
$array_date=getdate();
$date=date('Y年m月d日',mktime(
$array_date[hours],
$array_date[minutes],
$array_date[seconds],
$array_date[mon],
$array_date[mday]+7,
$array_date[year])
);
print
$date; ?>
出力結果:
2005年04月3日 0時0分0秒 ←現在を2005年3月27日0時0分0秒としたときの7日後
|
■date関数のフォーマットパラメータ
| format character |
説明 |
戻り値の例 |
a |
午前または午後(小文字) |
am または pm |
A |
午前または午後(大文字) |
AM または PM |
B |
Swatch インターネット時間 |
000 から 999 |
d |
日。二桁の数字(先頭にゼロがつく場合も) |
01 から 31 |
D |
曜日。3文字のテキスト形式。 |
Mon から Sun |
F |
月。フルスペルの文字。 |
January から December |
g |
時。12時間単位。先頭にゼロを付けない。 |
1 から 12 |
G |
時。24時間単位。先頭にゼロを付けない。 |
0 から 23 |
h |
時。数字。12 時間単位。 |
01 から 12 |
H |
時。数字。24 時間単位。 |
00 から 23 |
i |
分。先頭にゼロをつける。 |
00 to 59 |
I (大文字の i) |
サマータイム中か否か |
1ならサマータイム中。 0ならそうではない。 |
j |
日。先頭にゼロをつけない。 |
1 から 31 |
l (小文字の 'L') |
曜日。フルスペル形式。 |
Sunday から Saturday |
L |
閏年であるかどうかを表す論理値。 |
1なら閏年。0なら閏年ではない。 |
m |
月。数字。先頭にゼロをつける。 |
01 から 12 |
M |
月。3文字形式。 |
Jan から Dec |
n |
月。数字。先頭にゼロをつけない。 |
1 から 12 |
O |
グリニッジ標準時(GMT)との時間差 |
Example: +0200 |
r |
RFC 822 フォーマットされた日付 |
例: Thu, 21 Dec 2000 16:01:07 +0200 |
s |
秒。先頭にゼロをつける。 |
00 から 59 |
S |
英語形式の序数を表すサフィックス。2 文字。 |
st, nd, rd または th。 jと一緒に使用する ことができる。 |
t |
指定した月の日数。 |
28 から 31 |
T |
このマシーンのタイムゾーンの設定。 |
例: EST, MDT ... |
U |
Unix 時(1970年1月1日0時0分0秒)からの秒数 |
time()も参照 |
w |
曜日。数値。 |
0 (日曜)から 6 (土曜) |
W |
ISO-8601 月曜日に始まる年単位の週番号 (PHP 4.1.0で追加) |
例: 42 (1年の第42週目) |
Y |
年。4 桁の数字。 |
例: 1999または2003 |
y |
年。2 桁の数字。 |
例: 99 または 03 |
z |
年間の通算日。数字。 |
0 から 366 |
Z |
タイムゾーンのオフセット秒数。 UTCの西側のタイムゾーン用のオフセットは常に負です。そして、 UTCの東側のオフセットは常に正です。 |
-43200 から 43200 |
※使用に関して発生した問題の責任は、一切負いませんのでご了承ください。
バグや不具合等に関しては、ご報告頂ければ善処します。
|