1

日付関数を使用してphpに日付があります

$date =  date('Y-m-d');

締め切りを表示するには、翌月に特定の日数を追加する必要があります。

例: 誰かが今日仕事を追加した場合5 days2014-08-04締め切りは2014-09-06

日付関数を使用して現在の月を取得し、値を1ずつ増やして次の月に移動し、日付関数の日に日数を追加することを計画していました。

これは長く見えますが、正しくありません

誰かがこれを達成するための最良の方法を教えてもらえますか?

4

2 に答える 2

1

使用するだけDateTime()です:

$date = (new DateTime('2014-08-04'))->modify('next month')->modify('+5 days')->format('Y-m-d');

またはでDateInterval()

$date = (new DateTime('2014-08-04'))->modify('next month')->add(new DateInterval('P5D'))->format('Y-m-d');

または、おそらくあなたのニーズにより適しています:

$days = 5;
$date = (new DateTime())->modify('next month')->modify("{$days} days")->format('Y-m-d'); 

上記の両方には、PHP 5.4+ が必要です。これを PHP 5.3 に変換する必要がある場合は、お知らせください。

上記のコードの PHP 5.3 バージョンは次のとおりです。

$days = 5;
$date = new DateTime();
$date->modify("next month"); 
$date->modify("{$days} days"); 
$date = $date->format('Y-m-d');
于 2014-08-04T18:21:54.520 に答える
1

PHP コミュニティは、利用可能な関数のこのような強力なコアが組み込まれていることを幸運に思っています。これを解決する方法は無数にありますが、多くの場合、最も単純な方法が最適です。

strtotimeバージョン 4 からサポートされています。高速です。明らかです。メンテナンス性が高いです。これ以上複雑なものは必要ありません。

$future_stamp = strtotime('+ 1 month 5 days');
$date = date('Y-m-d', $future_stamp);

編集:

多くの読書と当て推量の後、これはおそらくあなたが実際に望んでいるものです. また、strtotimeドキュメントを読む義務があると感じてください。あなたはこれを理解したかもしれません。

$future_stamp = strtotime(date('Y-m-d', strtotime('first day of next month')) . ' + 5 days');
于 2014-08-04T19:05:47.210 に答える