1

わかった?

ここで計算日を設定しようとしていますが、取得できません。

何が起こるかは次のとおりです。

$AtualMenos3 = date("m-d-Y", strtotime("2013-03-31 -3 month"));
$AtualMenos2 = date("m-d-Y", strtotime("2013-03-31 -2 month"));
$AtualMenos1 = date("m-d-Y", strtotime("2013-03-31 -1 month"));
$AtualMes = date("m-d-Y", strtotime("2013-03-31"));

正しいものは次のとおりです。

03-31-2013
02-28-2013
01-31-2013
12-31-2012

ただし、このphpは日付を間違って計算します。これは、月が2月(28日しかない)の場合、計算が間違っているためです。

実際の出力:

03-31-2013
03-03-2013
01-31-2013
12-31-2012

誰かが私がこれを修正する方法について私に光を与えることを知っていますか?これは複雑なので..私はアイデアがありません...私は何も考えられません:\

4

3 に答える 3

1
    $datetime = new DateTime('2013-03-31');
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";

実際に見てください

于 2013-03-26T14:00:00.900 に答える
0

月の最終日を見つけるための回避策は次のとおりです。

 $lastDay = date("m-d-Y",(strtotime('next month',strtotime(date("m-01-Y"))) - 1)); 

それがお役に立てば幸いです。

于 2013-03-26T13:44:21.343 に答える
0

に固執したい場合strtotime()は、翌月から1日を引くことで、月の最後の日を簡単に計算できます。

echo date("m-d-Y", strtotime("Apr 2013 -1 day")); // yields 03-31-2013
echo date("m-d-Y", strtotime("Mar 2013 -1 day")); // yields 02-28-2013
echo date("m-d-Y", strtotime("Feb 2013 -1 day")); // yields 01-31-2013
于 2013-12-31T02:50:03.503 に答える