Je kunt je data beter als timestamp opslaan en dan - 60 * 60 * 24 * 7 * 52 * $jaren.
Link gekopieerd
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));
Link gekopieerd
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.
Link gekopieerd
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!
Link gekopieerd
@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;
Link gekopieerd
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?
Link gekopieerd
Gebruik Franks manier eens.
Overigens, als je het geboortejaar van iemand wil berekenen, waarom dan niet gewoon zo:
<?php
$geboortejaar = date("Y") - $leeftijd;
?>
Link gekopieerd
Zo werkt het ^^
$date1 = date("Y") - $leeftijd1;
$search_datum1 = "" . $date1 . "-" . date("m-d") . "";
$date2 = date("Y") - $leeftijd2;
$search_datum2 = "" . $date2 . "-" . date("m-d") . "";
Link gekopieerd