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
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;
}
?>
un jour est 86400 secondes.
$tomorrow = date('y:m:d', time() + 86400);
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')));
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.
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
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 );
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;
}
?>