2016-05-20 1 views
1

この日付文字列をmysql dbに保存して日付順に並べ替える方法は?私はXMLでいくつかのデータレコードに引っ張っていますし、日付フィールドは、次の形式の文字列であるPHPで

木、2016年5月19日午後09時58分58秒0900(JST)

ときIこの日付をVARCHARカラムのMySQLテーブルに保存すると、日付で正しくソートすることができません。 DD/MM/YYYYの値に関係なく、 'Fri'で始まるすべての日付が最初に来るように、文字列をアルファベット順にソートします。

私はそうする必要があると思います: - 日付フィールドがVARCHARではなくTIMESTAMPまたはDATETIMEになるようにテーブル構造を変更してください。
- PHP strtotime()または同様の関数を使用して、文字列をTIMESTAMPに変換します。

しかし、私はそれを働かせることはできません、誰も助言できますか?

答えて

0

この形式で保存する必要があります。これはあなたを助けるかもしれません。

$sortable_date = date('Y-m-d H:i:s D',strtotime($your_date))." + 0900 (JST)"; 
0

はい=あなたはDateTime列を使用するようにデータベースを変換する必要があり、これはあなたがDateTime列

<?php 
$in = 'Thu, 19 May 2016 22:58:58 +0900 (JST)'; 

$date = DateTime::createFromFormat('D, d M Y H:i:s P e', $in); 

echo $date->format('Y-m-d H:i:s').PHP_EOL; 

Resultに格納する形式にこれらの日付を変換することができる方法である

2016-05-19 22:58:58 
関連する問題