Hallo,

Ik heb een probleem ...

Ik heb de datum van vandaag date(Y-m-d)
Maar ik heb ook een variable $jaren

En ik zou graag hebben dat de datum van vandaag --> date(Y-m-d)
Verminderd word met het aantal jaren uit de variabele ...
En dat moet in de variable $date gestoken worden.

Dus als de datum van vandaag 2008-11-30 is en de variable 20
Dan moet de variable $date gelijk zijn aan 1988-11-30.

Kan iemand hierbij helpen?

Alvast bedankt!
Groetjes,
Steven

Je kunt je data beter als timestamp opslaan en dan - 60 * 60 * 24 * 7 * 52 * $jaren.
Datum exploden en los in een mktime zetten, vervolgens kan je het aantal $jaren er eenvoudig vanaf trekken.

$date = date("Y-m-d", mktime(0, 0, 0, 11, 30, 2008 - $jaren));
Simpel:
<?php
$iJaren = -1;

$datum = new DateTime(); // Zonder parameters wordt de datum van vandaag genomen
$datum->modify($iJaren.' year');

echo $datum->format('d-m-Y'); // 30-11-2007
?>

Gepruts met secondes is alleen geschikt voor diegene die nog steeds geen klok kan kijken en/of een kalender begrijpt.
is DateTime een standaard-class van php?
Zo niet: wil je die dan ook posten?
Het kan ook heel makkelijk met SQL, of een variant daarop!
@Eddy: Sinds PHP versie 5.1.0 zit dit er standaard in, dat is dus al weer een jaar of 3.

In SQL stelt rekenen met datums natuurlijk helemaal niets voor:

SELECT 
  CURRENT_DATE - INTERVAL 1 YEAR AS vorig_jaar;
Hallo,

Ik heb alle mogelijkheden even geprobeerd die jullie vermeld hebben ... maar ik krijg geen enkele optie werkenden ....

Ik heb momenteel dit gedaan ...

$search_datum1 = date ("Y-m-d", mktime(0, 0, 0, date("m"), date("d"), date("Y")-$leeftijd1));

$search_datum2 = date ("Y-m-d", mktime(0, 0, 0, date("m"), date("d"), date("Y")-$leeftijd2));

Omdat dit mij de makkelijkste optie lijkt ...

Maar ook hier krijg ik een volledig foute uitkomst ...

leeftijd1 = 18
leeftijd2 = 110

en ik krijg als uitkomsten:
$search_datum1 = 1949
$search_datum2 = 1949

Wat doe ik hier mis?
Gebruik Franks manier eens.

Overigens, als je het geboortejaar van iemand wil berekenen, waarom dan niet gewoon zo:

<?php
$geboortejaar = date("Y") - $leeftijd;
?>
Zo werkt het ^^

$date1 = date("Y") - $leeftijd1;
$search_datum1 = "" . $date1 . "-" . date("m-d") . "";

$date2 = date("Y") - $leeftijd2;
$search_datum2 = "" . $date2 . "-" . date("m-d") . "";

Reageren