web-dev-qa-db-ja.com

PHPの現在のDate()までの日数を増やす

PHPで現在の日付に特定の日数を追加するにはどうすればよいですか?

私はすでに現在の日付を取得しています:

$today = date('y:m:d');

X日数を追加するだけです

43
Anomynous

phpは、cスタイルの日付関数をサポートします。 strtotime関数を使用して、英語スタイルのフレーズで日付期間を追加または減算できます。例...

$Today=date('y:m:d');

// add 3 days to date
$NewDate=Date('y:m:d', strtotime("+3 days"));

// subtract 3 days from date
$NewDate=Date('y:m:d', strtotime("-3 days"));

// PHP returns last sunday's date
$NewDate=Date('y:m:d', strtotime("Last Sunday"));

// One week from last sunday
$NewDate=Date('y:m:d', strtotime("+7 days Last Sunday"));

または

<select id="date_list" class="form-control" style="width:100%;">
<?php
$max_dates = 15;
$countDates = 0;
while ($countDates < $max_dates) {
    $NewDate=Date('F d, Y', strtotime("+".$countDates." days"));
    echo "<option>" . $NewDate . "</option>";
    $countDates += 1;
}
?>
94
Paul

1日は86400秒です。

$tomorrow = date('y:m:d', time() + 86400);
20
nickf

X noを追加する最も簡単な方法。日の..

echo date('Y-m-d',strtotime("+1 day"));    //+1 day from today

または指定された日付から...

echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
11

date_add() 関数は、必要なことを行う必要があります。さらに、 DateTime オブジェクトのドキュメント(非公式ですが、公式のものは少しまばらです)をチェックしてください。PHPの手続き関数よりも作業がはるかに優れています。

7
eplawless

PHP 5.3を使用

    $date = new DateTime();
    $interval = new DateInterval('P1D');
    echo $date->format('Y-m-d') , PHP_EOL;
    $date->add($interval);
    echo $date->format('Y-m-d'), PHP_EOL;
    $date->add($interval);
    echo $date->format('Y-m-d'), PHP_EOL;

出力します

2012-12-24

2012-12-25

2012-12-26

7
Xavier John

このコードがいくつかの場所で必要な場合は、短い関数を追加して、コードをよりシンプルでテストしやすくすることをお勧めします。

function add_days( $days, $from_date = null ) {
    if ( is_numeric( $from_date ) ) { 
        $new_date = $from_date; 
    } else { 
        $new_date = time();
    }

    // Timestamp is the number of seconds since an event in the past
    // To increate the value by one day we have to add 86400 seconds to the value
    // 86400 = 24h * 60m * 60s
    $new_date += $days * 86400;

    return $new_date;
}

その後、次のような場所で使用できます。

$today       = add_days( 0 );
$tomorrow    = add_days( 1 );
$yesterday   = add_days( -1 );
$in_36_hours = add_days( 1.5 );

$first_reminder  = add_days( 10 );
$second_reminder = add_days( 5, $first_reminder );
$last_reminder   = add_days( 3, $second_reminder );
2
Philipp

選択要素に15日を追加します(「Alive to Die」提案を使用)

<select id="date_list" class="form-control" style="width:100%;">
<?php
$max_dates = 15;
$countDates = 0;
while ($countDates < $max_dates) {
    $NewDate=Date('F d, Y', strtotime("+".$countDates." days"));
    echo "<option>" . $NewDate . "</option>";
    $countDates += 1;
}
?>
0
Rayed
$NewDate=Date('Y-m-d', strtotime("+365 days"));

echo $ NewDate; // 2020-05-21

0

$NewTime = mktime(date('G'), date('i'), date('s'), date('n'), date('j') + $DaysToAdd, date('Y'));

mktime documentation から:

mktime()は、範囲外の入力の正しい値を自動的に計算するため、日付の計算と検証に役立ちます。

この方法の利点は、読みやすいコード行で任意の時間間隔(時間、分、秒、日、月、または年)を追加または削除できることです。

Date()関数のすべての呼び出しにより、このコードはstrtotime( "+ 1 day")よりも約2.5倍遅いため、パフォーマンスにトレードオフがあることに注意してください。ループしている場合は、これらの値を再利用することを検討してください。

0
humbads