[PHP-users 31771] Re: 日付の書式について

NAKAMURA Takeshi 1yen @ sh.rim.or.jp
2007年 3月 30日 (金) 12:59:44 JST


仲村です


 もう、かなり PHP は触ってませんので雰囲気だけ。

On Fri, 30 Mar 2007 11:33:42 +0900,
 "Minoru.Harada" <system @ acekoeki.co.jp> wrote:

> データベースなどから日付を取得すると、「2001-02-24」のような無味乾燥
> な 結果が返ってきます。それを「2001/02/24」という形式にしたいと考えて
> います。

 - と / が変えるだけで、無味乾燥でなくなるとは思えないのですが、
文字列を置換すればいいのでは?

 str_replace("-", "/", $date);

とか。
# DB に依っては、出力形式を指定できたと思いますので、
# そちらも調べてみると良いかもしれません。
# 試したところ、Oracle だと「select to_char(sysdate, 'yyyy/mm/dd') now from dual;」
# で、所望の書式に変換できました。


> 以前、ColdFusionを勉強していた時はTimeFormat関数という便利なものが
> あったのですが、みなさんは日付の書式設定をどのようにされているので
> しょうか?

 strftime とかかな?。


 時刻として扱う正攻法だと

> $stamp = time();
 と
> $day = "2007-03-30";

 これらの値を表示させるとなんと出ますか?その差を埋める必要があります。

探した方法。
 0. date に与えるために Unix タイムが必要。
 1. Unix タイムを出力する関数として、mktime を発見。
 2. mktime には、年、月、日という分割された変数が必要。
 3. strptime で、日付の文字列を分割できるらしい。
より、

 $day = "2007-03-30";
 $arr_day = strptime ($day, "%Y-%m-%d");
 $day = mktime (0, 0, 0, $arr_day[tm_mon], $arr_day[tm_mday], $arr_day[tm_year]);
 $date = date('Y/m/d', $day);

 で、どうでしょうか?
(勿論、実際に使うには strptime でエラーが出てないか確認するなどが
 必要だと思います)
----+----1----+----2----+----3----+----4----+----5----+----6----+
 関西沖縄の集い がじまるの会 手伝い 一人だけの勝手に神奈川支部
 仲村 武 <1yen @ sh.rim.or.jp>
 あ、昼飯に行ってた間にいっぱい返事が来てる(^^;



PHP-users メーリングリストの案内