YYYYMMDD の形式でデータベースから日付を取得しています。これはワードプレスの値であり、ワードプレスで動作する特定のクエリを実行するには、このように保存する必要があります。
20121203 の場合は、先行ゼロの日と短い月、たとえば 3 DEC に変換したいと考えています。これどうやってするの?
YYYYMMDD の形式でデータベースから日付を取得しています。これはワードプレスの値であり、ワードプレスで動作する特定のクエリを実行するには、このように保存する必要があります。
20121203 の場合は、先行ゼロの日と短い月、たとえば 3 DEC に変換したいと考えています。これどうやってするの?
strtotime
そのフォーマットをUNIXタイムスタンプに変換できるはずです
$date = '20120101';
echo date('j M', strtotime($date));
// output: 1 Jan
ちなみに、これはロケール設定にも依存します。
編集: 重要な注意: 日付があいまいな場合、strtotime は false を返します!
mktime()
時、分、秒、月、日、年の整数値を受け入れる関数を使用して、UNIX タイムスタンプを生成することもできます。
$year = 2012;
$month = 1;
$day = 1;
$timestamp = mktime(0,0,0,$month,$day,$year);
echo date('j M', $timestamp);
// output: 1 Jan
編集: 別の方法は、既にフォーマットされているデータベースから値を取得することです (MySQL を想定):
SELECT UNIX_TIMESTAMP(20120101)
// outputs 1325372400 (== mktime(0,0,0,1,1,2012))