私はデータベースから来る日時を次の形式でフォーマットしようとしています
2012-06-11 21:39:54
ただし、次の形式で表示したいJune 11
どうすればこれを行うことができますか?
ありがとう
echo date('M d', strtotime('2012-06-11 21:39:54'));
DateTimeオブジェクトを使用することもできます。
$date = new DateTime($yourString);
$date->format($yourFOrmat);
DateTimeはtimestampやdate/strtotime関数よりも強力なので、これが最善の方法だと思います。上記のコードから、日付の変更、時間の反復、str_to_timeなどの関数を使用しない2つの日付の比較などの機能を追加できます。
$date->modify('+1 day');//the day after for example
foreach(new DatePeriod($date,new DateInterval('PT1M'),10){
$date->format($yourFormat);//iterate each minute
}
等々
PHPマニュアルには、日付/時刻関数の使用に関する優れたドキュメントが記載されています。基本的に、 strtotime()とdate()の2つの関数の組み合わせが必要になります。
strtotime()
日付をUnixタイムスタンプに変換しdate()
、2番目の引数として指定できます。
必要な日付の形式は次のとおりM d
です。
代替案:さらに、UNIXタイムスタンプへの変換を必要としないMYSQLの対応物を試すこともできます。ここに文書化されています。日時フィールドとして使用date
しているとすると、次のようなものが必要になります。
SELECT id,..,DATE_FORMAT(`date`, '%M %d') as f_date FROM table
phpを使用して日付をフォーマットするには、日付のタイムスタンプとフォーマット指定子を引数としてdate関数に渡す必要があります。例:echo date('M d'、strtotime( '2012-06-11 21:39:54'));