0

php DateTimeオブジェクトを使用して月の最終日の日付を取得する場合、年は常に正しくありません。

私のコードは次のとおりです。

$d = new DateTime();
$d->modify('last day of this month');
$formattedDateTime = $d->format('Y-m-d H:i:s')

2012年ではなく7168として返される年を除いて、すべてが正しいです。

何がこれを引き起こしているのかについて誰かアイデアはありますか?

4

2 に答える 2

0

他の人が言っているように、それは私にも機能します(PHP5.4.3)。ただし、最近のPHPバージョンのいくつかでは、日付/時刻コードにいくつかのバグがあります。可能であれば、インストールをアップグレードしてみて、それが役立つかどうかを確認してください。

DateTime::modify()そうは言っても、 :を使用するのではなく、文字列をコンストラクタに直接渡す必要があります。

$d = new DateTime('last day of this month');
$formattedDateTime = $d->format('Y-m-d H:i:s');
于 2012-08-21T22:40:36.883 に答える
0

PHPのバージョンに関連しているようです。

これは、 PHPのDateTime相対形式ページの最後のコメントとして見ました。

明らかに、これらの文字列の一部はPHP 5.3でのみ機能するようです。特に、たとえば「今月の最初の日」や「今月の最後の日」などです。別のウェブサイトで見つかった情報によると、「xxx日」機能がPHP5.3に追加されました。

于 2012-08-21T22:57:01.977 に答える