PHP では strtotime 関数を使うことで文字列の日付を認識して UNIX タイムスタンプに変換することができ、
そのタイムスタンプを date 関数で用いれば別のフォーマットの日付に書きなおすことが出来ます。
しかし、「03/01/12」という日付を見て、日本であれば 2003年1月12日 のことであると判断しますが、
アメリカでは 2012年3月1日 と判断され、イギリスでは 2012年1月3日 と解釈されてしまうかもしれません。
PHP でも同じことが起きます。実際にサンプルを作って実行してみます。
<?php $str = '03/01/12'; $time = strtotime($str); echo date("Y年m月d日", $time);
・実行結果
2012年03月01日
これがもし日本式の順番で書かれていたとしたらこの日付は間違っていることになります。
そこで文字列がどのような書式に則って書かれているかを指定することで正しい認識をさせることが出来ます。
<?php $str = '03/01/12'; $date = DateTime::createFromFormat('y/m/d', $str); echo $date->format('Y年m月d日');
・実行結果
2003年01月12日
DateTime クラスは PHP 5.0 以上で使えるクラスで、日付に関する様々な機能が使えます。
サンプルのように createFromFormat() で書式を指定すれば、format() 関数で自由な書式に書き換えることが出来ます。
Similar Posts:
- [PHP]日付から曜日を割り出す
- [PHP]PHPプログラミング学習者が陥りやすい10の失敗
- [PHP]次の土日(今週末)の日時を取得する
- [PHP]FTPでアップロードやダウンロード等のファイル操作を行う
- [PHP]ディレクトリ内の一定時間が経過した古いファイルだけを削除する
- [PHP]生年月日(誕生日)から星座を調べる
- [PHP]JSON+cURLで時刻同期型ワンタイムパスワードによる認証
- [PHP]指定した日時まであと何日(何時間)あるかを調べてカウントダウンする