2

コメントは、私が見ている出力です。ヘルプ!

echo date("Y-m-t", strtotime("2012-07-31 -1 month")); //2012-07-31
echo date("Y-m-t", strtotime("2012-07-31 -2 month")); //2012-05-31

7月は31日なので、8月1日として処理できませんよね?たとえそうだったとしても、2行目はうまくいくはずです。右?!

ありがとう!

4

2 に答える 2

1

ここで起こっているのは、「7-31」から1か月を引いたものが「6-31」として出力されることです。これは「7-1」に変換され、月の最後の日を求めると「7-31」として出力されます。 。

月の計算を行いたい場合は、常にではないにしても、ほとんどの場合、mktimeを使用して時間を作成することをお勧めします。

$month = 7;
echo date("Y-m-t", mktime(0, 0, 0, $month - 1, 1, 2012)); //2012-06-30

mktimeで月の計算を行うときは、常に「1」を日として指定することに注意してください。または、28以下であれば何でもかまいません。

于 2012-08-03T13:31:57.167 に答える
-1

次のようなことができます。

$month  = date('m') ;
$day    = date('d') ;
$year   = date('Y') ;
// ----
$current    = mktime( 0, 0, 0, $month , $day, $year);
$yesterday  = mktime( 0, 0, 0, $month , $day-1, $year);
$tomorrow   = mktime( 0, 0, 0, $month , $day+1, $year);
// ----
echo '<pre>Current Day: '.date('Y-m-d', $current).'</pre>';
echo '<pre>Day Before: '.date('Y-m-d', $yesterday).'</pre>';
echo '<pre>Day After: '.date('Y-m-d', $tomorrow).'</pre>';

7 月の最終日を探している場合:

$july = mktime( 0, 0, 0, 8, 1-1, 2012);
// Last Day of July: 2012-07-31
echo '<pre>Last Day of July: '.date('Y-m-d', $july).'</pre>';

mktime を使用して、8 月の最初の日を入力し、1 日を減算します。

于 2012-08-03T13:27:42.957 に答える