Maison > développement back-end > tutoriel php > Pourquoi l'ajout d'un jour à une date ne se répercute-t-il pas sur le mois suivant ?

Pourquoi l'ajout d'un jour à une date ne se répercute-t-il pas sur le mois suivant ?

Linda Hamilton
Libérer: 2024-11-29 11:35:13
original
419 Les gens l'ont consulté

Why Does Adding a Day to a Date Not Roll Over to the Next Month?

Correction de l'ajout de date avec survol du mois

Votre code a l'intention d'ajouter un jour à une date, mais il semble renvoyer une date qui précède l'ajout. Examinons le problème et fournissons une solution qui se déroule correctement sur plusieurs mois après l'ajout de jour.

Le code problématique :

$stop_date = date('Y-m-d H:i:s', strtotime("2009-09-30 20:24:00"));
echo 'date before day adding: '.$stop_date; 
$stop_date = date('Y-m-d H:i:s', strtotime('+1 day', $stop_date));
echo ' date after adding one day. SHOULD be rolled over to the next month: '.$stop_date;
Copier après la connexion

L'erreur réside dans la ligne où vous effectuez l'ajout :

$stop_date = date('Y-m-d H:i:s', strtotime('+1 day', $stop_date));
Copier après la connexion

Cette ligne utilise la fonction strtotime() pour manipuler la date. Cependant, lorsque vous spécifiez un décalage horaire tel que « 1 jour », les mois ne sont pas correctement reportés.

Solution

Pour ajouter correctement un jour et reporter les mois si nécessaire, vous pouvez utiliser l'une des approches suivantes :

PHP 5.3 :

$stop_date = '2009-09-30 20:24:00';
echo 'date before day adding: ' . $stop_date; 
$stop_date = date('Y-m-d H:i:s', strtotime($stop_date . ' +1 day'));
echo 'date after adding 1 day: ' . $stop_date;
Copier après la connexion

PHP 5.2 :

$stop_date = new DateTime('2009-09-30 20:24:00');
echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s'); 
$stop_date->modify('+1 day');
echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s');
Copier après la connexion

Ces solutions ajouteront correctement un jour à la date spécifiée et reporteront les mois si nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal