-5

私のPHPコードが間違った結果を次のコードに与えるのはなぜですか:

date_default_timezone_set('UTC');
echo date('d-m-Y');

作業中および生産中:

30-01-2013

ただし、このコード:

date_default_timezone_set('UTC');
echo date('d-m-Y',strtotime("+1 month"));

この日付を作成しています:

02-03-2013

それ以外の:

28-02-2013

ただし、必要なのは月番号だけです。

4

5 に答える 5

7

それは実際には正しいです。

今日は30-01です。+1ヶ月とさせて頂きます30-02。この日付は存在しないため、02-03(28-02 + 2 日)になります。

于 2013-01-30T11:58:28.157 に答える
3

を使用して解決

http://derickrethans.nl/obtaining-the-next-month-in-php.html

コード:

echo date('d-m-Y',strtotime("first day of next month"));

月番号だけが必要だったので。

于 2013-01-30T12:01:06.730 に答える
2

この問題については、PHP 開発者がここで説明しています。使用できる回避策はありますが、1 月 31 日 + 1 か月が 2 月 2 日であるという結論に達する論理を説明する必要があります。

于 2013-01-30T12:01:10.957 に答える
0

チェックアウト 、

<?php   
    date_default_timezone_set('UTC');

    //Current date
    $date= date("Y-m-d");

    // Timestamp of new date after adding 1 month
    $timestamp= strtotime(date("Y-m-d", strtotime($date)) . "+1 month");

    //Converting timestamp of new date to readable date.
    $newdate= date("Y-m-d",$timestamp);
?>
于 2013-01-30T12:09:00.817 に答える
0

2月は28日しかないからです。strtotime +1 Month は 30 日を追加しています。代わりに DateTime クラスを使用してみてください: http://php.net/manual/en/class.datetime.php

于 2013-01-30T12:00:39.477 に答える