J'ai une date PHP sous la forme de 2013-01-22
et je veux obtenir la date de demain dans le même format, par exemple 2013-01-23
.
Comment est-ce possible avec PHP?
Utiliser DateTime
$datetime = new DateTime('tomorrow');
echo $datetime->format('Y-m-d H:i:s');
Ou:
$datetime = new DateTime('2013-01-22');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');
Ou:
$datetime = new DateTime('2013-01-22');
$datetime->add(new DateInterval("P1D"));
echo $datetime->format('Y-m-d H:i:s');
Ou en PHP 5.4+:
echo (new DateTime('2013-01-22'))->add(new DateInterval("P1D"))
->format('Y-m-d H:i:s');
ou
Lien d'aide: STRTOTIME ()
la source
Depuis que vous l'avez tagué avec strtotime, vous pouvez l'utiliser avec le
+1 day
modificateur comme ceci:Cela dit, c'est une bien meilleure solution pour utiliser DateTime .
la source
la source
echo date ('Y-m-d',strtotime('+1 day', strtotime($your_date)));
la source
Utilisez
DateTime
:Pour obtenir demain à partir de maintenant:
Pour obtenir demain à partir d'une date:
J'espère que ça aide!
la source
la source
Par étrange, il peut sembler que cela fonctionne parfaitement bien:
date_create( '2016-02-01 + 1 day' );
echo date_create( $your_date . ' + 1 day' )->format( 'Y-m-d' );
Devrait le faire
la source
Premièrement, trouver des abstractions correctes est toujours une clé. clé de la lisibilité, de la maintenabilité et de l'extensibilité.
Ici, un candidat assez évident est un
ISO8601DateTime
. Il existe au moins deux implémentations: la première est une date / heure analysée à partir d'une chaîne et la seconde est demain. Par conséquent, il existe deux classes qui peuvent être utilisées et leur combinaison aboutit au résultat (presque) souhaité:Les deux objets sont une date / heure ISO8601, leur représentation textuelle n'est donc pas exactement ce dont vous avez besoin. Le coup final est donc de leur faire prendre une forme de date:
Puisque vous avez besoin d'une représentation textuelle, pas seulement d'un objet, vous invoquez un
value()
méthode.Pour en savoir plus sur cette approche, jetez un œil à cet article .
la source
voici la fonction de travail
la source
Où 86400 est le nombre de secondes dans une journée.
la source