ポンクソフト

日付・時刻に関する関数 - PHPで日付・時刻の計算

前ページ PHPで日付・時刻の計算 TOP 次ページ

目次

  1. PHPで日付・時刻の計算
  2. 日付・時刻に関する関数
  3. 年齢計算
  4. 今月のカレンダー
  5. 年月を指定できるカレンダー
  6. 予定表
  7. 予定表(単一ソース)

time関数

現在のUNIXタイムスタンプを返す関数です。

説明

int time(void)
現在時刻をUnix epoch(1970年1月1日 00:00:00 GMT)からの通算秒として返します。

サンプル

print time();
以下のような数値が出力されます。
1063785395

date関数

日付・時刻を書式化する関数です。

説明

string date(string format [, int timestamp])
引数 timestamp で指定されたUNIXタイムスタンプを、与えられたフォーマット文字列によりフォーマットし、日付・時刻文字列を返します。 timestamp が省略された場合は現在の時刻、つまり time() の値が使われます。

よく使われるフォーマット文字

 説明戻り値の例
a午前または午後(小文字)am または pm
A午前または午後(大文字)AM または PM
d日。二桁の数字01 から 31
g時。12時間単位。先頭にゼロを付けない。1 から 12
G時。24時間単位。先頭にゼロを付けない。0 から 23
h時。数字。12 時間単位。01 から 12
H時。数字。24 時間単位。00 から 23
i分。先頭にゼロをつける。00 から 59
j日。先頭にゼロをつけない。1 から 31
L閏年であるかどうかを表す論理値。1 なら閏年。0 なら閏年ではない。
m月。数字。先頭にゼロをつける。01 から 12
n月。数字。先頭にゼロをつけない。1 から 12
s秒。先頭にゼロをつける。00 から 59
t指定した月の日数。28 から 31
w曜日。数値。0 (日曜)から 6 (土曜)
Y年。4 桁の数字。例: 1999 や 2003
y年。2 桁の数字。例: 99 や 03

サンプル

print date("Y年m月d日 H時i分s秒", time());
以下のように現在時刻がフォーマットされて出力されます。
2003年09月18日 10時52分31秒
現在時刻をフォーマットする場合は以下のように timestamp を省略できます。
print date("Y年m月d日 H時i分s秒");

strtotime関数

フォーマットされた日時をUNIXタイムスタンプに変換する関数です。

説明

int strtotime(string time)
引数 time にフォーマットされた日付・時刻文字列を指定して関数を呼び出すと、UNIXタイムスタンプへ変換して返します。失敗すると-1を返します。
データベースの日付・時刻・タイムスタンプ型などからUNIXタイムスタンプを取得したいときなどに便利です。

よく使われるフォーマットの例

文字列意味
2003-09-182003年9月18日
2003/09/182003年9月18日
09/18今年の9月18日
3 day3日後
-2 day2日前
2 week2週間後
1 year1年後
1 week 2 day1週間と2日後
11:27:3511時27分35秒
11:2711時27分00秒
1111時00分00秒
2003-09-18 11:27:352003年9月18日 11時27分35秒
4 hour4時間後
10 minute10分後
30 second30秒後
1 week 10 minute 30 second1週間と10分30秒後

サンプル

print strtotime("2003-09-18 11:27:35");
以下のように出力されます。
1063852055
また、以下のように日付を分かりやすい形式に変換するのにも使えます。
print date("Y年m月d日 H時i分s秒", strtotime("2003-09-18 11:27:35"));
以下のように出力されます。
2003年09月18日 11時27分35秒

mktime関数

引数で指定された日時をUNIXタイムスタンプとして取得する関数です。

説明

int mktime(int hour, int minute, int second, int month, int day, int year)
与えられた引数に従ってUNIXタイムスタンプを返します。引数は右から順に省略することが可能で、省略されると現在日時に設定されます。

サンプル

print mktime(10, 22, 30, 5, 1, 2003);
以下のように 2003/5/4 10:22:30 をUNIXタイムスタンプにしたものが出力されます。
1051752150
また、以下のようにしても同じ値が出力されます。
print mktime(10, 22, 30, 4, 31, 2003);
なぜなら、mktime関数には、日付や時刻に大きい値を指定しても、繰り上げて正常な日時に直してくれる機能があるからです。
例えば、今年の2月の最後の日を表示したければ
print date("d", mktime(0, 0, 0, 3, 0));
とすればOKです。
前ページ PHPで日付・時刻の計算 TOP 次ページ
このエントリーをはてなブックマークに追加 そっか0

このページに関するコメントをどうぞ

お名前:


シャネル サングラス
リーマン・ショックが過ぎ、米国株はどんどんと上昇してしまい、買い時を逃した人も多いはず。
100年に一度と言われたリーマン・ショックですから当然ビビって底値なんかでは買えないわけです。
指をくわえて押し目待ちに押し目なしの状態だった人も多いことでしょう。
しかし、ようやく2016年にチャンスがやって来ました。
2017/07/16 05:31

カルティエ 時計
私の言いたいことは、私がどれほどまでに私はこの腕時計が好きだったことに驚きました。
つまり、はい、それは比較的きれいなダイヤルを好きなことがたくさんありました、そして多くのビンテージの手がかりは、ドームを含む(と)サファイアクリスタルは、過去の高層のアクリル系結晶の感覚を与えます。
しかしそれはクロノグラフ、ですが、私は、率直にその合併症、ユーティリティの多くのために私の人生でありません。
など、デザインは私に似合いませんでした。
ブライトリングのトランスオーシャンクロノグラフが1915年の私のスタンスを再考させるでない間、それは私と一緒に時間を過ごす幸せだったものである。
2017/07/16 03:55


あかさたなは
2017/07/12 18:39


222fffた
2017/07/11 14:49


222あ
2017/07/11 01:56



2017/07/09 13:30

阿部心臓
雷がやばい
2017/07/08 18:18

いいいい
おおおおおおおおおお
2017/07/07 15:07

東洋の魔女
はふはふ
2017/07/07 07:57


日本語が文字化けしてしまいます
2017/07/05 11:49

残りを読む »