質問

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 事実上最初の日である日である日として、それはあなたを前月に入れます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top