112 votes

Date moins 1 an?

J'ai une date dans ce format:

 2009-01-01
 

Comment puis-je retourner la même date mais 1 an plus tôt?

148voto

CMS Points 315406

Vous pouvez utiliser strtotime :

 $date = strtotime('2010-01-01 -1 year');
 

La fonction strtotime renvoie un horodatage Unix. Pour obtenir une chaîne mise en forme, vous pouvez utiliser date :

 echo date('Y-m-d', $date); // echoes '2009-01-01'
 

123voto

Alex Points 1409

Utilisez la fonction strtotime ():

   $time = strtotime("-1 year", time());
  $date = date("Y-m-d", $time);
 

67voto

user2621799 Points 61

Utilisation de l'objet DateTime ...

 $time = new DateTime('2099-01-01');
$newtime = $time->modify('-1 year')->format('Y-m-d');
 

Ou utiliser maintenant pour aujourd'hui

 $time = new DateTime('now');
$newtime = $time->modify('-1 year')->format('Y-m-d');
 

9voto

Nirmal Points 2955
// set your date here
$mydate = "2009-01-01";

/* strtotime accepts two parameters.
The first parameter tells what it should compute.
The second parameter defines what source date it should use. */
$lastyear = strtotime("-1 year", strtotime($mydate));

// format and display the computed date
echo date("Y-m-d", $lastyear);

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