時間の計算も楽々!!
本日は2024年11月21日(Thu) 17:52:02です。
<?php $today = new DateTime();//本日 echo "本日は", $today->format('Y年m月d日(D) H:i:s'),"です。";?>
PHP5.0のリリース日は2004年07月13日(Tue)です。リリースされてから20年4ヶ月8日経っています
<?php $php5 = new DateTime('13 July 2004');//PHP5.0のリリース日 echo "PHP5.0のリリース日は", $php5->format('Y年m月d日(D)'), "です。リリースされてから"; $diff = $today->diff($php5); echo $diff->format('%y年%mヶ月%d日'),"経っています";?>
PHP5.1のリリース日は2005年11月24日(Thu)です。リリースされてから18年11ヶ月27日経っています。
<?php $php51 = new DateTime('2005/11/24');//PHP5.1のリリース日 echo "PHP5.1のリリース日は", $php51->format('Y年m月d日(D)'), "です。リリースされてから"; $diff = $today->diff($php51); echo $diff->format('%y年%mヶ月%d日'),"経っています。";?>
PHP5.2のリリース日は2006年11月02日(Thu)です。リリースされてから18年0ヶ月19日経っています
<?php $php52 = new DateTime('2006-11-2');//PHP5.2のリリース日 echo "PHP5.2のリリース日は", $php52->format('Y年m月d日(D)'),"です。リリースされてから"; $diff = $today->diff($php52); echo $diff->format('%y年%mヶ月%d日'),"経っています";?>
PHP5.3のリリース日は2009年06月30日(Tue)です。リリースされてから15年4ヶ月21日経っています。総日数は5623 日です。
<?php $php53 = new DateTime('20090630');//PHP5.3のリリース日 echo "PHP5.3のリリース日は", $php53->format('Y年m月d日(D)'), "です。リリースされてから"; $diff = $today->diff($php53); echo $diff->format('%y年%mヶ月%d日'), "経っています。総日数は", $diff->format("%a 日"),"です。";?>
PHP5.4のリリース日は2012年03月01日(Thu)です。リリースされてから12年8ヶ月20日経っています
<?php $php54 = new DateTime('2012-03-01');//PHP5.4のリリース日 echo "PHP5.4のリリース日は", $php54->format('Y年m月d日(D)'),"です。リリースされてから"; $diff = $today->diff($php54); echo $diff->format('%y年%mヶ月%d日'),"経っています";?>
PHP5.5のリリース日は2013年06月20日(Thu)です。リリースされてから11年5ヶ月1日経っています
<?php $php55 = new DateTime('2013-06-20');//PHP5.5のリリース日 echo "PHP5.5のリリース日は", $php55->format('Y年m月d日(D)'),"です。リリースされてから"; $diff = $today->diff($php55); echo $diff->format('%y年%mヶ月%d日'),"経っています";?>
PHP5.6のリリース日は2014年08月28日(Thu)です。リリースされてから10年2ヶ月24日経っています
<?php $php56 = new DateTime('2014-08-28');//PHP5.6のリリース日 echo "PHP5.6のリリース日は", $php55->format('Y年m月d日(D)'),"です。リリースされてから"; $diff = $today->diff($php56); echo $diff->format('%y年%mヶ月%d日'),"経っています";?>
日付だけでなく時間の差分もできます!
7時間51分寝ました
<?php $sleep = new DateTime('2011-06-01 23:47'); $wakeup = new DateTime('2011-06-02 07:38'); $diff = $sleep->diff($wakeup); echo $diff->format('%h時間%i分寝ました');?>
本日のタイムスタンプは1732179122です。
<?php echo "本日のタイムスタンプは", $today->format('U'),"です。";?>
2038年問題も解消!!
2040年のタイムスタンプは2208956400です
<?php $dt = new DateTime("2040-01-01");echo "2040年のタイムスタンプは" ,$dt->format('U'),"です";?>
そしてその日付に1年2ヶ月3日4時間5分6秒足してみましょう!
→2012年09月04日 14時35分56秒そして更にそこから3年2ヶ月1日を引いてみます。
→2009年07月03日 14時35分56秒そして更に更にそこから1時間2分3秒を引いてみます。
→2009年07月03日 13時33分53秒<?php $dt = new DateTime('2011-07-01 10:30:50'); echo "元になる時間です。→" , $dt->format('Y年m月d日 H時i分s秒'); echo "<p>そしてその日付に1年2ヶ月3日4時間5分6秒足してみましょう!</p>"; $dt->add(new DateInterval('P1Y2M3DT4H5M6S')); echo "→", $dt->format('Y年m月d日 H時i分s秒'), "<br /><br />"; echo "<p>そして更にそこから3年2ヶ月1日を引いてみます。</p>"; $dt->sub(new DateInterval('P3Y2M1D')); echo "→", $dt->format('Y年m月d日 H時i分s秒'),"<br /><br />"; echo "<p>そして更に更にそこから1時間2分3秒を引いてみます。</p>"; $dt->sub(new DateInterval('PT1H2M3S')); echo "→", $dt->format('Y年m月d日 H時i分s秒');?>
<?php //加減算 $dt = new DateTime("2011-07-1 10:15:20"); echo "元になる日付です。→", $dt->format('Y年m月d日 H時i分s秒'), "<br /><br />"; $d = $dt->add(DateInterval::createFromDateString("1year 2month 3day 4hour 5min 6sec")); echo "そこで1年2ヶ月3日4時間5分6秒足してみます。→", $d->format("Y-m-d H:i:s"), "<br /><br />"; $d = $dt->sub(DateInterval::createFromDateString("6year 5month 4day 3hour 2min 1sec")); echo "そして更に6年5ヶ月4日3時間2分1秒引いてみます。→", $d->format("Y-m-d H:i:s"), "<br /><br />"; $d = $dt->add(DateInterval::createFromDateString("1year 2month 3day 4hour 5min 6sec ago")); echo "更に1年2ヶ月3日4時間5分6秒引きます。→", $d->format("Y-m-d H:i:s"),"<br>"; ?>
書式文字列で利用可能な記述子
記述子 | 概要 | 値 |
---|---|---|
年 | ||
Y | 年(4桁) | (例)2011 |
y | 年(2桁) | (例)11 |
z | 年間の通算日 | 0~365 |
L | 閏年であるか | 0|1 |
W | 年の通算週 | 42 |
月 | ||
m | 月(2桁) | 01~12 |
n | 月 | 1~12 |
F | 月(長い形式) | January~ December |
M | 月(省略形) | Jan~Dec |
t | 指定した月の日数 | 28~31 |
日 | ||
d | 日(2桁) | 01~31 |
j(ジェイ) | 日 | 1~31 |
l(エル) | 曜日(長い形式) | Monday~Sunday |
D | 曜日(省略形) | Mon~Sun |
N | 曜日ISO-8601形式の曜日 | 1(月曜)~7(日曜) |
w | 曜日 | 0(日曜)~6(土曜) |
z | 年間の通算日数(ゼロから開始) | 0~365 |
時刻 | ||
a | 午前/午後(小文字) | am|pm |
A | 午前/午後(大文字) | AM|PM |
h | 時(12時間単位)2桁 | 01~12 |
H | 時(24時間単位)2桁 | 00~23 |
g | 時(12時間単位) | 1~12 |
G | 時(24時間単位) | 0~23 |
i | 分 | 00~59 |
s | 秒 | 00~59 |
u | マイクロ秒(PHP5.2.2以上) | |
タイムゾーン | ||
e | タイムゾーン識別子 | UTC、GMT、Asia/Tokyo |
O | グリニッジ標準時(GMT)との時差 | +0900 |
P | グリニッジ標準時(GMT)との時差間 | +09:00 |
Z | タイムゾーンのオフセット秒数 | -43200~43200 |
定型フォーマット | ||
c | ISO8601形式の日付 | 2011-06-30T10:15:00+0900 |
r | RFC2822形式の日付 | Thu,30 June 2011 10:15:00+0900 |
U | タイムスタンプ | 1274461920 |
日付/時間間隔の単位(間隔指示子)
「P<日付間隔>T<時間間隔>」形式
3年6ヶ月1時間30分はP3Y6MT1H30M
1年2ヶ月はP1Y2M
5時間15分はPT5H15M
単位 | 概要 |
---|---|
Y | 年 |
M | 月 |
D | 日 |
W | 週(Dと一緒に利用できない) |
H | 時間 |
M | 分 |
S | 秒 |
書式文字列で利用可能な記述子
大文字は2桁で0をプラス
記述子 | 概要 |
---|---|
%Y,%y | 年 |
%M,%m | 月 |
%D,%d | 日 |
%a | 総日数(DateTime::diff()による計算結果のみ出力可能、PHP5.3.1では正しく動作しない) |
%H,%h | 時間 |
%I,%i | 分 |
%S,%s | 秒 |
%R,%r | 負数は「-]、正数は「+」 |
スポンサーリンク