0

重複の可能性:
PHPの月末日

PHPでは、先月の最終日を取得しようとしています。たとえば、今日は2012年12月11日です。したがって、私が取得しようとしている日付は11月30日です。

これは私が現在やろうとしていることです:

        //this grabs the last daye of this month
        $current_month = date('Y-m-t',strtotime('today'));

        //this should grab November 30th.
        $last_month = date("F, Y",strtotime($current_month." -1 month ")

11月30日を取得する代わりに、12月1日を取得しています。「-1ヶ月」は単に30日を引いたようです。

先月の最終日を正しく取得するにはどうすればよいですか?

4

3 に答える 3

5
$datetime = new DateTime('last day of this month');
echo $datetime->format('F jS');

また

$datetime = new DateTime();
echo $datetime->format('Y-m-t');

最初のものでは、出力を好きなようにフォーマットできます。現在の月ではない月を使用する場合は、DateTime コンストラクターに有効な日付形式を渡すことができ、コードが残りの処理を行います。

于 2012-12-11T16:21:29.240 に答える
4

cal_days_in_month() はあなたが望むものです。最後の日は、合計日数と同じです。

cal_days_in_month (int $calendar,int $month,int $year)

$calendar は通常 CAL_GREGORIAN です

$month - 1 を関数に送信して、必要な結果を得ます。

于 2012-12-11T16:22:51.643 に答える
3

現在の月/年および日としてmktime()を呼び出すことができます。0

$last_day_of_last_month = mktime(0, 0, 0, date('n'), 0, date('Y'));

それは文書化されています:

day [...] 1 未満の値 (負の値を含む) は前月の日数を参照するため、0 は前月の最終日、-1 はその前日などです。関連する月の日は、翌月の該当する日を参照します。

于 2012-12-11T16:26:34.487 に答える