時間に対する考え方1

公開日: 2016年4月22日金曜日

時間に対する考え方

エポックタイムと呼ばれるタイムスタンプは1970年1月1日を起点として表していく。 strftime()とdate()関数がある。strftime()は利用するOSに依存し、()の間に入れるアルファベット中、使用できないものがある。
まずxamppとかmamp などの仮想サーバーを使用式いる場合はTimeZoneを変更する必要がある。初期設定ではヨーロッパ時間になっており+8時間進んでしまっている。 自分はMampなので変更方法を紹介しておく。
  1. /Applications/MAMP/bin/php/php5.x.xx/conf/php.iniを開く。php5.x.xxは上記で確認したバージョン。
  2. timezoneで検索してdate.timezone = Europe/Berlinをdate.timezone = Asia/Tokyoに変更する。
  3. 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

指定された時間から、タイムスタンプを出力する(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は現在のロケーションに基づいて表示する形式

関数

種類datestrftime説明表示
y%y西暦を2桁で表示16
Y%Y西暦を4桁で表示2016
m%m月を2桁で表示04
n--月を表示4
M%b月をロケーションに応じた省略した名前で表示1月
F%b月をロケーションに応じた名前で表示April
日付とか曜日とかの関数がまだまだたくさんある。
スポンサーリンク
スポンサーリンク
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿