0

YYYYMMDD の形式でデータベースから日付を取得しています。これはワードプレスの値であり、ワードプレスで動作する特定のクエリを実行するには、このように保存する必要があります。

20121203 の場合は、先行ゼロの日と短い月、たとえば 3 DEC に変換したいと考えています。これどうやってするの?

4

1 に答える 1

1

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))
于 2012-11-28T15:09:12.610 に答える