104 votes

ajouter 1 jour à une valeur de format DATETIME

Dans certaines situations, je souhaite ajouter 1 jour à la valeur de ma variable formatée DATETIME :

$start_date = date('Y-m-d H:i:s', strtotime("{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}"));

Quelle est la meilleure façon de le faire ?

239voto

John Conde Points 102874

Il y a plus d'une façon de le faire avec DateTime qui a été introduit dans PHP 5.2. Contrairement strtotime(), cela représentera l'heure d'été et l'année bissextile.

$datetime = new DateTime('2013-01-29');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');

// Available in PHP 5.3

$datetime = new DateTime('2013-01-29');
$datetime->add(new DateInterval('P1D'));
echo $datetime->format('Y-m-d H:i:s');

// Available in PHP 5.4

echo (new DateTime('2013-01-29'))->add(new DateInterval('P1D'))->format('Y-m-d H:i:s');

// Available in PHP 5.5

$start = new DateTimeImmutable('2013-01-29');
$datetime = $start->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');

73voto

RaYell Points 26761

Si vous voulez le faire en PHP :

// replace time() with the time stamp you want to add one day to
$startDate = time();
date('Y-m-d H:i:s', strtotime('+1 day', $startDate));

Si vous souhaitez ajouter la date dans MySQL :

-- replace CURRENT_DATE with the date you want to add one day to
SELECT DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY);

12voto

nickf Points 185423
  1. Utilisez strtotime pour convertir la chaîne en horodatage
  2. Ajoutez une journée à cela (par exemple : en ajoutant 86400 secondes (24 * 60 * 60))

par exemple :

$time = strtotime($myInput);
$newTime = $time + 86400;

S'il ne s'agit que d'ajouter 1 jour, utiliser strtotime à nouveau est probablement exagéré.

11voto

Omar Points 628

Vous pouvez utiliser

$now = new DateTime();
$date = $now->modify('+1 day')->format('Y-m-d H:i:s');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X