PHPで日付日時を独自のフォーマットに変更し直す

PR

API等で取得したデータの日時が、利用したい日時のフォーマットで無く。またタイムゾーンが違っていたので、独自のフォーマットにしてやる方法。主にどんな時に使うことになったかと言うと、Twitter API で取得した日時が、使いにくい形だったので独自のフォーマットにするときに利用しました

 

 

PHPで出力済みの日付日時のをdataで独自のフォーマットに変換する

PHPにはdata()があります、なにも指定しなければ現在の日時を取得しますが。日付、日時のデータをdate()に放り込むと、好きな形のフォーマットで取り出すことが出来るようになります

date_default_timezone_set( 'Asia/Tokyo' );
$date = 'Wed Jan 28 05:51:05 +0000 2015';
$date = date('Y-m-d H:i:s', strtotime($date));

まずどこかでタイムゾーンを Asia/Tokyo  で日本の時刻に設定

次に、変数 $date に変換したい日時を放り込みます

最後に data() で y-m-d H:i:s で YYYY-MM-DD HH:II:SS というフォーマットに変換しています。そして変数 $date に戻します

 

データベースに保存するときなどに、date型に沿った形にして情報を格納したい時や。日本語表示にしたい場合などに利用します。例えば 日本語でxxxx年 xx月 xx日 としたい場合には data() の最初のところで Y年 m月 d日 とすれば良い。

date() は時間の取得だけじゃなくてフォーマットの変換にも使えます

 

フォーマットで出力する形式は以下のようになっています
(以下引用 http://php.net/manual/ja/datetime.formats.date.php)

format文字 説明 戻り値の例
d 日。二桁の数字(先頭にゼロがつく場合も) 01 から 31
D 曜日。3文字のテキスト形式。 Mon から Sun
j 日。先頭にゼロをつけない。 1 から 31
l (小文字の ‘L’) 曜日。フルスペル形式。 Sunday からSaturday
N ISO-8601 形式の、曜日の数値表現 (PHP 5.1.0 で追加)。 1(月曜日)から7(日曜日)
S 英語形式の序数を表すサフィックス。2 文字。 st, nd, rd またはthjと一緒に使用する ことができる。
w 曜日。数値。 0 (日曜)から 6 (土曜)
z 年間の通算日。数字。(ゼロから開始) 0 から 365
W ISO-8601 月曜日に始まる年単位の週番号 (PHP 4.1.0 で追加) 例: 42 (年の第 42 週目)
F 月。フルスペルの文字。 January からDecember
m 月。数字。先頭にゼロをつける。 01 から 12
M 月。3 文字形式。 Jan から Dec
n 月。数字。先頭にゼロをつけない。 1 から 12
t 指定した月の日数。 28 から 31
L 閏年であるかどうか。 1なら閏年。0なら閏年ではない。
o ISO-8601 形式の年。これは Y ほぼ同じだが、ISO 週番号 (W)が前年あるいは翌年に属する場合がある点で 異なる(PHP 5.1.0 で追加)。 例: 1999 あるいは2003
Y 年。4 桁の数字。 例: 1999または2003
y 年。2 桁の数字。 例: 99 または 03
a 午前または午後(小文字) am または pm
A 午前または午後(大文字) AM または PM
B Swatch インターネット時間 000 から 999
g 時。12時間単位。先頭にゼロを付けない。 1 から 12
G 時。24時間単位。先頭にゼロを付けない。 0 から 23
h 時。数字。12 時間単位。 01 から 12
H 時。数字。24 時間単位。 00 から 23
i 分。先頭にゼロをつける。 00 から 59
s 秒。先頭にゼロをつける。 00 から 59
u マイクロ秒 (PHP 5.2.2 で追加)。 date() の場合、これは常に 000000 となることに注意しましょう。というのも、 この関数が受け取るパラメータは integer 型だからです。 一方DateTime::format() はマイクロ秒にも対応しています。 例: 654321
タイムゾーン
e タイムゾーン識別子(PHP 5.1.0 で追加) 例: UTC, GMT,Atlantic/Azores
I (大文字の i) サマータイム中か否か 1ならサマータイム中。 0ならそうではない。
O グリニッジ標準時 (GMT) との時差 例: +0200
P グリニッジ標準時 (GMT) との時差。時間と分をコロンで区切った形式 (PHP 5.1.3 で追加)。 例: +02:00
T タイムゾーンの略称 例: EST, MDT
Z タイムゾーンのオフセット秒数。 UTC の西側のタイムゾーン用のオフセットは常に負です。そして、 UTC の東側のオフセットは常に正です。 -43200 から50400
全ての日付/時刻
c ISO 8601 日付 (PHP 5 で追加されました) 2004-02-12T15:19:21+00:00
r » RFC 2822 フォーマットされた日付 例: Thu, 21 Dec 2000 16:01:07 +0200
U Unix Epoch (1970 年 1 月 1 日 0 時 0 分 0 秒) からの秒数 time() も参照
PR

COMMENT

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー