[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 メーリングリストの案内