時間に対する考え方1
公開日: 2016年4月22日金曜日
時間に対する考え方
エポックタイムと呼ばれるタイムスタンプは1970年1月1日を起点として表していく。 strftime()とdate()関数がある。strftime()は利用するOSに依存し、()の間に入れるアルファベット中、使用できないものがある。
まずxamppとかmamp などの仮想サーバーを使用式いる場合はTimeZoneを変更する必要がある。初期設定ではヨーロッパ時間になっており+8時間進んでしまっている。 自分はMampなので変更方法を紹介しておく。
- /Applications/MAMP/bin/php/php5.x.xx/conf/php.iniを開く。php5.x.xxは上記で確認したバージョン。
- timezoneで検索してdate.timezone = Europe/Berlinをdate.timezone = Asia/Tokyoに変更する。
- Mampを再起動して終わり。
コード
<?php
echo date("r")."<br>";
echo strftime("%c")."<br>";
echo date("Y/m/d H/i/s")."<br>".
strtotime( "now" )."<br>".
date(M)."<br>".
date(F);
?>
結果
Tue, 19 Apr 2016 04:17:37 +0200
Tue Apr 19 04:17:37 2016
2016/04/19 04/17/37 1461032257
Apr
April
Tue Apr 19 04:17:37 2016
2016/04/19 04/17/37 1461032257
Apr
April
指定された時間から、タイムスタンプを出力する(mktime)
コード
<?php
$time = mktime(11,34,00,4,19,2016);
echo $time
?>
結果
1461058440
文字列からタイムスタンプを生成する。(strtotime)
コード
<?php
$bace = strtotime(now);//"2012-03-04T12:00:00+09:00"
$bace_c = date("r",$bace);//タイムスタンプをdate関数rで文字列に変更
$d1 = date("r",strtotime("+1 day",$bace));//翌日の時
$w3 = date("r",strtotime("+3 week",$bace));//3週間後(+3までしか指定できない)
$y10 = date("r",strtotime("+10 year",$bace));//10年後の時間
$next_mon = date("r",strtotime("next Monday",$bace));//次の月曜日を表示する
$last_mon = date("r",strtotime("last Monday",$bace));//前の週の月曜日を表示
echo $bace_c."<br>".
$d1."<br>".
$w3."<br>".
$y10."<br>".
$next_mon."<br>".
$last_mon."<br>"
;
?>
結果
Tue, 19 Apr 2016 13:01:50 +0900 Wed, 20 Apr 2016 13:01:50 +0900 Tue, 10 May 2016 13:01:50 +0900 Sun, 19 Apr 2026 13:01:50 +0900 Mon, 25 Apr 2016 00:00:00 +0900 Mon, 18 Apr 2016 00:00:00 +0900
dateとstrtimeの違い
date
dateはRFC822と呼ばれる書式で、ブロクなどで使用される。
strtime
strtimeは現在のロケーションに基づいて表示する形式
関数
種類 | date | strftime | 説明 | 表示 |
---|---|---|---|---|
年 | y | %y | 西暦を2桁で表示 | 16 |
年 | Y | %Y | 西暦を4桁で表示 | 2016 |
月 | m | %m | 月を2桁で表示 | 04 |
月 | n | -- | 月を表示 | 4 |
月 | M | %b | 月をロケーションに応じた省略した名前で表示 | 1月 |
月 | F | %b | 月をロケーションに応じた名前で表示 | April |
日付とか曜日とかの関数がまだまだたくさんある。
スポンサーリンク
スポンサーリンク
0 件のコメント :
コメントを投稿