0

今月までの 24 か月のリストが必要です。これが私のコードです:

<?php
$monthbefore1  = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$monthbefore2  = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$monthbefore3  = mktime(0, 0, 0, date("m")-2, date("d"), date("Y"));
$monthbefore4  = mktime(0, 0, 0, date("m")-3, date("d"), date("Y"));
$monthbefore5  = mktime(0, 0, 0, date("m")-4, date("d"), date("Y"));
$monthbefore6  = mktime(0, 0, 0, date("m")-5, date("d"), date("Y"));
$monthbefore7  = mktime(0, 0, 0, date("m")-6, date("d"), date("Y"));
$monthbefore8  = mktime(0, 0, 0, date("m")-7, date("d"), date("Y"));
$monthbefore9  = mktime(0, 0, 0, date("m")-8, date("d"), date("Y"));
$monthbefore10 = mktime(0, 0, 0, date("m")-9, date("d"), date("Y"));
$monthbefore11 = mktime(0, 0, 0, date("m")-10, date("d"), date("Y"));
$monthbefore12 = mktime(0, 0, 0, date("m")-11, date("d"), date("Y"));
$monthbefore13 = mktime(0, 0, 0, date("m")-12, date("d"), date("Y"));
$monthbefore14 = mktime(0, 0, 0, date("m")-13, date("d"), date("Y"));
$monthbefore15 = mktime(0, 0, 0, date("m")-14, date("d"), date("Y"));
$monthbefore16 = mktime(0, 0, 0, date("m")-15, date("d"), date("Y"));
$monthbefore17 = mktime(0, 0, 0, date("m")-16, date("d"), date("Y"));
$monthbefore18 = mktime(0, 0, 0, date("m")-17, date("d"), date("Y"));
$monthbefore19 = mktime(0, 0, 0, date("m")-18, date("d"), date("Y"));
$monthbefore20 = mktime(0, 0, 0, date("m")-19, date("d"), date("Y"));
$monthbefore21 = mktime(0, 0, 0, date("m")-20, date("d"), date("Y"));
$monthbefore22 = mktime(0, 0, 0, date("m")-21, date("d"), date("Y"));
$monthbefore23 = mktime(0, 0, 0, date("m")-22, date("d"), date("Y"));
$monthbefore24 = mktime(0, 0, 0, date("m")-23, date("d"), date("Y"));

echo date("F", $monthbefore24);
echo date("F", $monthbefore23);
echo date("F", $monthbefore22);
echo date("F", $monthbefore21);
echo date("F", $monthbefore20);
echo date("F", $monthbefore19);
echo date("F", $monthbefore18);
echo date("F", $monthbefore17);
echo date("F", $monthbefore16);
echo date("F", $monthbefore14);
echo date("F", $monthbefore13);
echo date("F", $monthbefore12);
echo date("F", $monthbefore11);
echo date("F", $monthbefore10);
echo date("F", $monthbefore9);
echo date("F", $monthbefore8);
echo date("F", $monthbefore7);
echo date("F", $monthbefore6);
echo date("F", $monthbefore5);
echo date("F", $monthbefore4);
echo date("F", $monthbefore3);
echo date("F", $monthbefore2);
echo date("F", $monthbefore1);
?>

結果がこのようになるのはなぜですか?* 3 月 3 月* 4 月 5 月 6 月 7 月 8 月 9 月 10 月 12 月 1 月 * 3 月 3 月 * 4 月 5 月 6月 7 月 8 月 9 月 10 月 11 月 12月 1 月

4

5 に答える 5

2

今日は1月30日ですが、2月には30の日がないため、日付にプラス2日が加算され、3月の結果はPHP日付関数マニュアルhttp://www.php.net/manualを参照してください。 /en/function.date.php

于 2013-01-30T10:37:29.730 に答える
1

30 日であり、すべての月に 30 日があるわけではない今日の DAY を使用しているため、3 月が繰り返される可能性が最も高くなります。これらを使用できます

    $months = array();
    $date = mktime(0, 0, 0, date('n'), 1);
    for($i = -1; $i >= -24; $i--) {
        $months[] = date('F', strtotime($i.' month', $date));
    }
    print_r($months);

使いやすいように結果を配列に入れましたが、結果を単純にエコーアウトすることもできます。

    $date = mktime(0, 0, 0, date('n'), 1);
    for($i = -1; $i >= -24; $i--) {
        echo date('F', strtotime($i.' month', $date));
    }

最初の行は、今日の月と年で構成されるタイムスタンプを作成しますが、月の初日が含まれます。3 行目では、日付から $i の月数を削除し、結果のタイムスタンプを月の文字列表現に変換します。

于 2013-01-30T10:54:31.587 に答える
0
for ($i=-1; $i--; $i>-24)
{
      echo date("F", strtotime($i." months"));
}
于 2013-01-30T10:41:50.193 に答える
0

date()マニュアルを探して、何を取得したいかを説明してください。

于 2013-01-30T10:37:07.807 に答える
0

私はあなたの問題を別の方法で解決します。私の質問は、今年の 0 月までに何を期待していますか? それとも今年の-1の月?date() のドキュメントを参照してください。

日付計算には PHP が提供するものを使用します。DateTime バンドル。

次に例を示します。

// Get an instance of DateTime with current time (no argument)
$date = new DateTime();

// Create a DateInterval (that may be a bit confusing) by one month
$interval = new DateInterval('P1M');
# Same as: $interval = DateInterval::createFromDateString('1 month')

// What date do we have now?
echo $date->format('F');

// What date is it if we substract one month and print it?
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
echo $date->sub($interval)->format('F');
于 2013-01-30T11:00:46.600 に答える