web-dev-qa-db-fra.com

Augmenter le nombre de jours en php Date ()

Comment puis-je ajouter un certain nombre de jours à la date actuelle en PHP?

J'ai déjà la date du jour avec:

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

Juste besoin d'ajouter x nombre de jours à cela

41
Anomynous

php prend en charge les fonctions de date de style c. Vous pouvez ajouter ou soustraire des périodes avec des expressions de style anglais via la fonction strtotime. exemples...

$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"));

ou 

<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;
}
?>

90
Paul

un jour est 86400 secondes.

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

Le moyen le plus simple d’ajouter x no. de jours ..

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

OU à partir de la date spécifiée ...

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

La fonction date_add() devrait faire ce que vous voulez. En outre, consultez la documentation (non officielle, mais les officielles sont un peu clairsemées) pour l’objet DateTime , il est beaucoup plus agréable de travailler que les fonctions procédurales de PHP.

7
eplawless

Avec 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;

va sortir 

2012-12-24

2012-12-25

2012-12-26

7
Xavier John

Si vous avez besoin de ce code à plusieurs endroits, je vous conseillerais d'ajouter une fonction courte pour simplifier le test et le rendre plus facile.

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;
}

Ensuite, vous pouvez l'utiliser n'importe où comme ceci:

$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

Ajouter 15 jours à un élément sélectionné (en utilisant la suggestion "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