web-dev-qa-db-fra.com

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?

74
ajsie

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'
114
CMS

Utilisez la fonction strtotime ():

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

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');
41
user2621799

un moyen plus simple que j'ai utilisé et bien travaillé

date('Y-m-d', strtotime('-1 year'));

cela a fonctionné parfaitement .. espérons que cela aidera quelqu'un d'autre aussi .. :) 

21
saadk
// 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);
9
Nirmal

Sur mon site Web, pour vérifier si l'inscription des personnes a 18 ans , j'ai simplement utilisé les éléments suivants:

$legalAge = date('Y-m-d', strtotime('-18 year'));

Après, ne comparez que les deux dates.

J'espère que ça pourrait aider quelqu'un.

0
Meloman