113 votes

comment obtenir la date d'hier en utilisant php ?

Je veux obtenir la date d'hier en utilisant un format de date spécifique en php. Voici le format :

$today = date("d.m.Y"); //15.04.2013

Est-ce possible ?

Tenir compte du mois et de l'année s'ils doivent être changés respectivement.

8voto

Gaurang P Points 175

Étape 1

Nous devons définir le format des données dans la fonction date() : La fonction date() renvoie une chaîne de caractères formatée selon la chaîne de format donnée en utilisant le timestamp entier donné ou l'heure actuelle si aucun timestamp n'est donné. En d'autres termes, le timestamp est facultatif et prend par défaut la valeur de time().

<?php
echo date("F j, Y");
?>

résultat : 30 mars 2010

Étape 2

Pour la date "hier", utilisez la fonction php mktime() : La fonction mktime() retourne le timestamp Unix correspondant aux arguments donnés. Ce timestamp est un entier long contenant le nombre de secondes entre l'époque Unix (1er janvier 1970 00:00:00 GMT) et l'heure spécifiée. Les arguments peuvent être omis dans l'ordre de droite à gauche ; tout argument ainsi omis sera mis à la valeur courante selon la date et l'heure locales.

<?php
echo mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
?>

résultat : 1269820800

Étape 3

Maintenant, fusionnez tout et regardez ça :

<?php
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y")));
echo $yesterday;
?>

résultat : 29 mars 2010

En opérant de la même manière, il est possible de récupérer des heures de temps.

<?php
$yesterday = date("H:i:s",mktime(date("H"), 0, 0, date("m"),date("d"), date("Y")));
echo $yesterday;
?>

résultat : 20:00:00

ou il y a 7 jours :

<?php
$week = date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-7,date("Y")));
echo $week;
?>

résultat : 2010-03-23

3voto

leviathan Points 33

Une autre méthode OOP pour DateTime avec le réglage de l'heure exacte :

$yesterday = new DateTime("yesterday 09:00:59", new DateTimeZone('Europe/London'));
echo $yesterday->format('Y-m-d H:i:s') . "\n";

2voto

liyakat Points 7894

Essayez ceci

<?php
$yesterday = date(“d.m.Y”, time()-86400);
echo $yesterday;

1voto

Raptor Points 16051

La plupart des réponses sont de style procédural/mixte. Voici la solution en pur style POO :

$today = new DateTime();
$yesterday = $today->sub(new DateInterval("P1D"));
echo $yesterday->format("d.m.Y");

Cela résoudra également les problèmes d'heure d'été et de fuseau horaire. Une solution simple.

0voto

Heri Lesmana Points 1

Nous pouvons utiliser la méthode Fancy. Comme ceci pour hier. Pour aujourd'hui

$date = new DateTime; // example 2021-04-02
date_sub($date, date_interval_create_from_date_string('1 days')); 
$date = date_format($date, 'Y-m-d'); // Output will be 2021-04-01

Ou nous pouvons trouver hier par une date spécifique comme ceci.

$date = date_create('2021-04-06');
date_sub($date, date_interval_create_from_date_string('5 days'));
$date = date_format($date, 'Y-m-d'); // The output will be 2021-04-01

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