-2

私はこれを持っています:

$today=date('Y-m-d');
// echo "2013-11-12";

次のように先月の範囲を取得したい:

$startLastMonth = "2013-10-01";
$endLastMonth   = "2013-10-31";

私はそれを試みますが、42を置く必要があるため、それは私の欲求を満たしていません:

$startLastMonth = mktime(0, 0, 0, date("Y"), date("m"),   date("d")-42);

別の方法はありますか?

ありがとう

4

3 に答える 3

4

以下のコードは動作するはずです

$startLastMonth = mktime(0, 0, 0, date("m") - 1, 1, date("Y"));
$endLastMonth = mktime(0, 0, 0, date("m"), 0, date("Y"));

あなたがしていることは、PHP に、a) 前月の 1 日 ( date("m") - 1) が必要であること、および b)今月0 日が必要であることを PHP に伝えることです。前の月。ドキュメントはここにあります: http://php.net/manual/en/function.mktime.php

あなたができるように出力をフォーマットしたい場合

$startOutput = date("Y-m-d", $startLastMonth);
$endOutput = date("Y-m-d", $endLastMonth);
于 2013-11-12T17:38:41.070 に答える
3

PHP が提供する相対日付/時刻形式を使用するだけです。

var_dump( new DateTime( 'first day of last month' ) );
var_dump( new DateTime( 'last day of last month' ) );

参照: http://www.php.net/manual/en/datetime.formats.relative.php

于 2013-11-12T17:44:53.353 に答える