日付および時刻関連

関数日付および時刻関連

概要

 状態:-  閲覧数:2,019  投稿日:2014-10-12  更新日:2014-10-30  
日付・時刻に関する関数は、大きく3つに分かれる
1.タイムスタンプを取得する関数
・time関数、mktime関数、strtotime関数

2.引数で与えられたタイムスタンプに基づき、整形表示する関数
・date関数、gmdate関数

3.その他の関数
・cgeckdate関数


UNIXのタイムスタンプ


・西暦1970年1月1日からの経過秒数


違い


time関数とmktime関数とstrtotime関数の違い
time() mktime() strtotime()
現在時刻のタイムスタンプを取得 指定日時のタイムスタンプを取得 「指定した時点」から「指定した時点」までのタイムスタンプを取得


1.タイムスタンプを取得する関数

 閲覧数:714 投稿日:2014-10-12 更新日:2014-10-25 

違い


time関数とmktime関数とstrtotime関数の違い

time()
・現在時刻のタイムスタンプを取
・西暦1970年1月1日から、実行したときの日時までの秒数を、取得

mktime()
・指定日時のタイムスタンプを取得

strtotime()
・「指定した時点」から「指定した時点」までのタイムスタンプを取得

三者の違い
time() mktime() strtotime())
現在時刻のタイムスタンプを取得 指定した日付のタイムスタンプを取得 「指定した時点」から「指定した時点」までのタイムスタンプを取得


mktime


mktime関数
・引数で指定した日時のUNIXタイムスタンプを取得
mktime (時, 分, 秒, 月, 日, 年, サマータイム);
・引数は右から順に省略することが可能
・省略された引数は、ローカルの日付と時刻にセットされる
・PHP 5.1 以降、引数なしでコールすると mktime() は E_STRICT notice を発行 → time() 関数を利用
引数 概要 記述例 備考
1 22 -
2 18 -
3 10 -
4 8 -
5 5 -
6 2011(2 桁または 4 桁の値を指定可能) -
7 サマータイム - PHP 5.1.0 以降、このパラメータは廃止


strtotime


strtotime関数
・指定時点からのUNIXタイムスタンプを取得
・略した場合は、現時点からのタイムスタンプを取得
int strtotime(string 日時[, int 時点])
※[,時点]は省略可
・指定時点から「どこまで」を、設定可
・「どこまで」は、指定書式(英文形式の日付時刻)で、設定

第2引数 が指定されていない場合は?
・現在日時に自動変換される
・つまり、nowを指定しても、nowを省略しても同じ挙動を示す

strtotime関数において特別な意味を持つ「フォーマット文字」一覧
・第一引数に指定する文字列
・英文形式の日時を表わす単語
単語 使用方法
day 日を表わす
week 日を1週間単位で表わす
month 月を表わす
year 年を表わす
hour 時刻を表わす
minute 分を表わす
second 秒を表わす
now 現在時刻を表わす
tomorrow +1 day と同様 つまり、「明日」
yesterday -1 day と同様 つまり、「昨日」
first +1 と同様
next +1 と同様[br]
※但しバージョン4.4より前のPHPでは、誤って+2として計算される
last -1 と同様


2.引数で与えられたタイムスタンプに基づき、整形表示する関数

 閲覧数:651 投稿日:2014-10-12 更新日:2014-10-31 

2つの選択肢


・「基準とする時間」に応じて、大きく2つの選択肢がある              

時刻=「ローカルタイムゾーン」基準
・日本地域に合わせた時間)を使う

「GMTグリニッジ標準時」基準
・「ローカルタイムゾーン」は「GMTからの時差」となる
・(PHPを利用する際は)、「ローカルタイムゾーン」=「(GMTグリニッジ標準時)+時差」になる
・日本の場合は、「ローカルタイムゾーン」=「(UTC協定世界時≒GMTグリニッジ標準時)+9」
- ローカルタイムゾーン(GMTからの時差) UTC協定世界時≒GMTグリニッジ標準時
メリット +9時間という計算をしなくてもよい 全世界どこにあるサーバでも、その場所の時間(タイムゾーン)に関係なく同じ値を返す。つまり、どのタイムゾーンであろうと「GMT+9時間」という日時は常に「日本」を表わすため、例えば海外レンタルサーバ(海外のタ  イムゾーンに時計を合わせている)を利用することになった場合でも、GMTを使用していればスクリプトを書き換える必要はない
デメリット サーバ内の時計がどのタイムゾーンに合わせてあるかにより、影響を受ける +9時間という計算をしなければ、日本地域に合わせた時刻とならない

ローカルタイムゾーン (UTC協定世界時≒GMTグリニッジ標準時)+時差(9)
- ローカルタイムゾーン (UTC協定世界時≒GMTグリニッジ標準時)+時差(9)
コード date gmdate


9時間の時差


+9時間=タイムスタンプに変換すると32400秒
・タイムスタンプは単位が「秒」なので、9時間分の秒数を足せばよい
・time() + 9 * 60 * 60; // 時間数 * 分数 * 秒数
・time() + 9 * 3600; // 時間数 * 分×秒数
・time() + 32400; // オフセット秒数
・32400のように時差を秒数で表わしたものをオフセット秒数と言う
・「date('Z'); // タイムゾーンのオフセット秒数を得る」でも取得可能
・日本のオフセット秒数は"+32400"

date関数において特別な意味を持つ「フォーマット用記号(文字)」」一覧

 閲覧数:731 投稿日:2014-10-31 更新日:2014-10-31 
date関数において特別な意味を持つ「フォーマット用記号(文字)」一覧
・第一引数に指定する文字列
フォーマット文字 変換 戻り値
y 年(2桁表記) 04
Y 年(4桁表記) 2004
n 月(先頭にゼロを付けない) 1~12
m 月(2桁表記) 01~12
M 月(3文字形式) Jan~Dec
F 月(フルスペルの文字) January~December
j 日(先頭にゼロを付けない) 1~31
d 日(2桁表記) 01~31
w 曜日(整数) 0(日曜)~6(土曜)
D 曜日(3文字のテキスト) Mon~Sun
l 曜日(フルスペル形式) Sunday~Saturday
a 午前または午後(小文字) amまたはpm
A 午前または午後(大文字) AMまたはPM
g 時(12時間単位) 1~12
h 時(12時間単位、2桁表記) 01~12
G 時(24時間単位) 0~23
H 時(24時間単位、2桁表記) 00~23
i 分(2桁表記) 00~59
s 秒(2桁表記) 00~59
L 閏年であるか否か 1または0
t その月の日数 28~31
S 日付の英語形式の序数に対応した接尾辞 st,nd,rd,th
z 年間の通算数 0~366
W ISO-8601月曜開始の年単位の週番号 23(週目)
O グリニッジ標準時(GMT)との時間差 +0900
r RFC822フォーマットされた日時 Sat,5Jun200418:44:59+0900
T サーバのタイムゾーン 東京 (標準時)
B SwatchInternetTime 000~999
I サマータイム制か否か 1または0
U Unixタイムからの秒数 タイムスタンプと同じ
Z タイムゾーンのオフセット秒数 -43200~43200



コメント投稿(ログインが必要)



週間人気ページランキング / 6-7 → 6-13
順位 ページタイトル抜粋 アクセス数
1 PHPで定数を定義する方法は2種類ある / 配列定数の定義 9
2 コード例 … 「例外処理」はネストすることができる 5
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 5
3 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 4
4 ガベージコレクション | 機能 3
4 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ○○.php on line △△ | Warning(エラーメッセージ) 3
4 curl で Cookie を使用する 3
4 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 3
4 Catchable fatal error: Object of class DateTime could not be converted to string | Fatal error(エラーメッセージ) 3
4 Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Connection refused | Fatal error(エラーメッセージ) 3
4 Warning: include() [function.include]: Failed opening '**.php' for inclusion (in | Warning(エラーメッセージ) 3
4 ( ! ) Deprecated: implode(): Passing glue string after array is deprecated. Swap the parameters in ★★★ headless-chromium-php/vendor/wrench/wrench/lib/Wrench/Protocol/Protocol.php | エラーメッセージ 3
5 Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) | Fatal error(エラーメッセージ) 2
5 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
5 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 2
5 Fatal error: Uncaught RuntimeException: SplFileObject::__construct(): failed to open stream: Permission denied in | Fatal error(エラーメッセージ) 2
5 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'カラム名' cannot be null | Fatal error(エラーメッセージ) 2
5 session_start() | セッション 2
5 @ | 演算子 2
5 Parse error: syntax error, unexpected T_REQUIRE_ONCE, expecting T_FUNCTION | Parse error(エラーメッセージ) 2
2024/6/14 1:01 更新