PHPでタイムスタンプを変換して日付を表示する

php_timestamp
PHPでタイムスタンプへの変換とタイムスタンプからの変換メモです。
データベースの日付型からの出力などで使ったり、xmlやRSSでの日付形式などでもよく使う変換です。
PHPの場合は「date関数」「time関数」「strtotime関数」を覚えていればほとんどの場合に対処できるので、プログラムの中でも役立つタイムスタンプの変換をおさらいしてみます。

SPONSORED LINK

タイムスタンプ変換

まずはPHPでタイムスタンプを変換する例を見てみましょう。かなり柔軟な利用ができることがわかると思います。

Date型をUNIXタイムスタンプに変換する

$date = "2009-11-11 11:11:11";
echo strtotime($date);
//結果:1257905471

UNIXタイムスタンプをdate関数で整形する

$date = time();
echo date("Y/m/d H:i:s",$date);
//結果:2014/05/03 23:05:31

time関数

現在時刻をUnix epoch(1970年1月1日 00:00:00 GMT)からの通算秒として返します。

print time();
//出力:1063785395

秒数で管理できるということは、現在から15分後は60*15=900なので900秒プラスした値ということになります。
その反対に過去の時間も瞬時に算出できますね。
人間は秒で動いている動物だと実感させられます。
一年は何秒なのだろう。
怖いので計算はまたの機会にします。

date関数

引数 timestamp で指定されたUNIXタイムスタンプを、与えられたフォーマット文字列によりフォーマットし、日付・時刻文字列を返します。 timestamp が省略された場合は現在の時刻、つまり time() の値が使われます。

print date("Y年m月d日 H時i分s秒");
//出力:2014年04月18日 20時50分31秒

date関数の中にあるフォーマット文字列以外はそのまま表示されますので「date(‘Y年m月d日’);」といった利用ができます。
「date(‘d day’);」はdもaもyもフォーマット文字列なのでdayと表示したい時には「¥」でエスケープが必要です。
「date(‘d ¥d¥a¥y’);」というわけですね。
知っているからこそ便利であって、知らないとエラーを招く物になってしまいます。
原始人に缶切を渡したらきっと使えません。

strtotime関数

引数 time にフォーマットされた日付・時刻文字列を指定して関数を呼び出すと、UNIXタイムスタンプへ変換して返します。失敗すると-1を返します。

print date("Y年m月d日 H時i分s秒", strtotime("2014-04-18 20:50:31"));
//出力:2014年04月18日 20時50分31秒

英文形式も変換できますので、「date( ‘Y/m/d’, strtotime(“03 Jun 2014”) );」なんてこともできてしまいます。
日付の形式を守っていれば使いまわせるのでdate系関数はとても便利ですね。
strtotimeは直訳すると「形式の日付」です。
直感的に操作もできます。
「strtotime(“+3 week 4 days 2 hours”);」こんな記述で「3週間と4日の2時間後」を取得できます。
strtotime(“私に王子様が現れる日”)とやると何年足されるのでしょうか。
冗談です。

まとめ

PHP問わずプログラムの世界では時間の扱いは結構重要です。データ管理の根源にもなりますので、初期段階でのプログラム設計からタイムスタンプの変換を減らす方式を使えればいいですね。
とは言っても外部データの取得時などで日付を比較しなければならない場面は多々ありますので、こういった関数を覚えてしまうと捗りますよ!

今日も知識欲は止まらない。

関連トピック

PHPのmb_send_mail関数やmail関数で文字化け問題を解消する

PHPのmb_send_mail関数やmail関数で文字化けに悩んでいませんか? 正直、色々な原因があるので特効薬のような対処法はあり

PHPエラー対処方法「malformed header from script. Bad header=No recipient addresses found i」

PHPからメールを送信する際に「malformed header from script. Bad header=No recipien

PHPで画像ダウンロードのボタンでリンクする方法

PHPを利用して画像をダウンロードさせるボタンを作成する方法メモです。 リンクボタンをクリックすると保存ダイアログが表示されて、ダウン

PHPエラー対処法 First argument should be an array

[code] First argument should be an array [/code] このエラーは、 最初の引数

MySQL カラム名・テーブル名などに使ってはいけないキーワード

MySQLでテーブル名やカラム名に使用できないワードの一覧まとめ 予約語を使うのは危険なので回避しましょう。 バッククオートで囲って

PHPのdate関数で「年」が文字化けした時の対処方法

PHPのエラーについて「PHP date 年 文字化け」です。 PHPで日付を表示する時に欠かせないdate関数ですが「Y年」が文字化

PHPで配列のエラー「Cannot use string offset as an array」がでる場合の対処法

PHPで「Cannot use string offset as an array」が出たら確認したいポイントをまとめました。 このエ

PHPでPingを送信する方法を関数化する

PHPを使ってサイトの更新情報などをPINGサーバーに送信する方法とその関数化です。 PINGの仕組みは、サイトの情報を記載したXML

公開日:2009/01/26