2010-02 を 2010 年 2 月に変換しようとしていますが、1969 年 12 月になり続けています。
mktime、strtotime、およびその 2 つの組み合わせを使用してみましたが、まだ実行できませんでした...
これは私が最近試したことです...
$path_title = date('F, Y', mktime(0,0,0,2,0,2010));
これはそれを行う方法です:
$dateString = '2010-02';
list($year, $month) = explode('-', $dateString);
$timeStamp = mktime(0, 0, 0, $month, 1, $year);
echo date('F, Y', $timestamp);
別の方法は次のとおりです。
$dateString = '2010-02';
$timestamp = strtotime($dateString . '-01');
echo date('F, Y', $timestamp);
strtotime
「2010-02」のようなあいまいな日付を処理することはできませんが、完全な日付にすると機能するはずです。
それ以外の場合は、次のようなものを調べてくださいDateTime::createFromFormat
。
これを試して:
$str = '2010-02';
echo date('F, Y',mktime(0,0,0,substr($str,-2),1,substr($str,0,4)));
に有効な値を使用していることを確認する必要がありますmktime()
。質問に編集した例で0
は、実際には初日から 1 日を引いた日であり、前月になります。