101 votes

PHP, Obtenir la date de demain à partir de la date

J'ai une date PHP sous la forme 2013-01-22 et je veux obtenir la date de demain dans le même format, donc par exemple 2013-01-23 .

Comment cela est-il possible avec PHP ?

5voto

Gregorio Points 92

Utilisez DateTime :

Pour obtenir demain à partir de maintenant :

$d = new DateTime('+1day');
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;

Résultats : 28/06/2017 08.13.20

Pour obtenir le lendemain d'un rendez-vous :

$d = new DateTime('2017/06/10 08.16.35 +1day')
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;

Résultats : 11/06/2017 08.16.35

J'espère que cela vous aidera !

1voto

crmpicco Points 2226
/**
 * get tomorrow's date in the format requested, default to Y-m-d for MySQL (e.g. 2013-01-04)
 *
 * @param string
 *
 * @return string
 */
public static function getTomorrowsDate($format = 'Y-m-d')
{
    $date = new DateTime();
    $date->add(DateInterval::createFromDateString('tomorrow'));

    return $date->format($format);
}

1voto

Aussi étrange que cela puisse paraître, il fonctionne parfaitement bien : date_create( '2016-02-01 + 1 day' );

echo date_create( $your_date . ' + 1 day' )->format( 'Y-m-d' );

Il faut le faire.

0voto

Zapadlo Points 883

Tout d'abord, l'élaboration d'abstractions correctes est toujours un élément clé de la lisibilité, de la maintenabilité et de l'extensibilité.

Ici, le candidat le plus évident est un ISO8601DateTime . Il existe au moins deux implémentations : la première est une date analysée à partir d'une chaîne de caractères, et la seconde est le lendemain. Il y a donc deux classes qui peuvent être utilisées, et leur combinaison donne le résultat (presque) souhaité :

new Tomorrow(new FromISO8601('2013-01-22'));

Les deux objets son une date ISO8601, donc leur représentation textuelle n'est pas exactement ce dont vous avez besoin. La dernière étape consiste donc à leur faire prendre la forme d'une date :

new Date(
    new Tomorrow(
        new FromISO8601('2013-01-22')
    )
);

Puisque vous avez besoin d'une représentation textuelle, et pas seulement d'un objet, vous invoquez une fonction value() méthode.

Pour en savoir plus sur cette approche, consultez le site suivant ce poste .

-1voto

Voici la fonction qui fonctionne

function plus_one_day($date){
 $date2 = formatDate4db($date);
 $date1 = str_replace('-', '/', $date2);
 $tomorrow = date('Y-m-d',strtotime($date1 . "+1 days"));
 return $tomorrow; }

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