2008/12/03

[php]文字列(yyyymmddhhmiss)からRFC2822フォーマットに変換

今、作っているアプリに必要だったので、調べてみることに。

下のようにyyyymmddhh24missという書式の文字列がある場合。

$temporary_date = "20081202213546";//2008年12月02日21時35分46秒

これをRFC2822フォーマットを行うには、mktime()dateを使って次のようにしました。

//「年」を取得
$temporary_yyyy = substr($temporary_date,0,4);
//「月」を取得
$temporary_mm = substr($temporary_date,4,2);
//「日」を取得
$temporary_dd = substr($temporary_date,6,2);
//「時」を取得
$temporary_hh = substr($temporary_date,8,2);
//「分」を取得
$temporary_mi = substr($temporary_date,10,2);
//「秒」を取得
$temporary_ss = substr($temporary_date,12,2);
//日付を Unix のタイムスタンプとして取得する
$temporary_date = mktime($temporary_hh,$temporary_mi,$temporary_ss,
$temporary_mm,$temporary_dd,$temporary_yyyy);
//RFC2822フォーマットに変換
$temporary_date = date("r",$temporary_date);
//表示
print($temporary_date);

確か、data関数のリファレンスで、mktimeを使って変換していたものがあったので、それを使ってみたのですが、他にも方法があるかもしれません。

今、思ったんだけど、各項目の取得時に変数ではなくて、配列の方がよかったかも。
でも、それほど違いはないのですが。。。

0 コメント:

コメントを投稿