Mysqlテーブルに保存された日付は、各行にCURRENT TIMESTAMPとして保存するように設定されており、次のように保存されます。
2010-05-29 01:17:35
しかし、私がやろうとしているのは、何らかの方法でPHPを使用して、すべてを分離し、次のような日付を作成できるようにすることです:
2010年5月29日1:17 AM
少なくとも誰かが私がとるべき正しい道に私を導くことができます。どんな助けも大歓迎です!
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
次の2つのソリューションがあります。
strtotime()
を使用して日付をタイムスタンプに解析し、 date()
文字列に再フォーマットするDateTime
クラスを使用します
PHPコードでは、これは以下を使用することを意味します:
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
または:
$dt = new DateTime('2010-05-29 01:17:35');
echo $dt->format('M j Y g:i A');
strtotime
+ date
は、最もよく使用されるソリューションです。しかし、それは最善の解決策ではありません:それらを使用すると、UNIXタイムスタンプで作業します。つまり、日付の範囲(32ビット整数を使用する場合は1970年から2038年まで)を意味します 。
一方、DateTime
クラスを使用すると、使用できる日付の範囲に制限がなくなります。
テーブルにDATETIME
フィールドがあり、日付フィールドのみが必要な場合:
SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;
または:
SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;
ここで、timestamp
は列名です。