2011-02-03 10 views
4

SQLサーバーdatetimeから日付を取得し、日付をフォーマットする必要があります。 (すなわち01-Jan-2000)私はPHPを使用しています。SQLサーバーの日時を取得する

現在、SQLは2009-02-13 22:00:00.000を返しています。

+0

私は非常にだけでUTCをお勧めします、データベースは、UTC(または別のTZを使用している場合を考慮に入れるようにしてくださいデータ)とデータの提示方法について説明します。実際の日付は、解釈の仕方によって異なる場合があります。日付にTZオフセットが存在しないことに注意してください(そして、sql :-)には日付時刻からはありません。 –

+1

@ user569403:どのPHP関数を解析していますかこの日? 'strtotime()'は、マイクロ秒の部分を削除しても、この日付を正しく解析します。この文字列で 'date()'を直接使用すると、 'date()'は整数のタイムスタンプを必要とするため不可能です... 'date()'は 'date () 'は' floats'を受け入れるか解析できません。 Go figure。 –

答えて

12
echo date('d-M-Y', strtotime($datetime_from_db)); 
+0

@ user569403: '$ datetime_from_db'はクエリによって返された日付列です。 'strtotime()'がとりうる文字列の例については、マニュアルページhttp://php.net/manual/en/function.strtotime.phpを参照してください。 Dan Grossmanの例のように 'date()'を使って日付を再フォーマットする例については、http://us.php.net/manual/en/function.date.phpを参照してください。 –

+0

これは私が前にやっていたことですが、1970年1月1日だけしか印刷されないので、今度は爆発関数を使用して、その日時から日付部分を取得しています。 –

+0

1970年1月1日を取得している場合は、おそらく$ date_from_dbの値が正しくないことを意味します。おそらく、それをスクリーンに印刷して、1970年1月1日になると期待しているかどうかを確認してください。 –

1

あなたはMySQLのクエリから直接、好きな形式で日付をプールすることができ、

SELECT DATE_FORMAT(column_name, '%d-%b-%Y') FROM tablename 
関連する問題