Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Ouderdom uitrekenen.  (gelezen 2464 keer)

0 leden en 1 gast bekijken dit topic.

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
Ouderdom uitrekenen.
« Gepost op: 11 maart 2009, 11:48:37 »
Ik gebruik onderstaande code om de ouderdom te bepalen van een datum uit een tekstdocument. Nu is het enkel in dagen, maar Ik wil het graag zo dat het wordt weergeven als "jaren, maanden, dagen". Dus, zo: 0 jaar 0 maanden 1dagen.
Hoe doe ik dat?

Citaat
<?php
$file=fopen("fotos/7.txt", "r");
$contents=fread($file, filesize("fotos/7.txt"));
fclose($file);
$contents=explode("/",$contents);
$dag=$contents[0];
$maand=$contents[1];
$jaar=$contents[2];
$gebeurtenis= "dagen oud.";
$dagen= (int)((time()- mktime (0, 0, 0, $maand, ($dag), $jaar)) /86400);
?>
<?php echo "is $dagen $gebeurtenis."; ?>
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: Ouderdom uitrekenen.
« Reactie #1 Gepost op: 11 maart 2009, 12:59:14 »
Dat is niet zo eenvoudig. Neem hier eens een kijkje: https://be.php.net/date

met date("L", $date)?366:365; en date("t", $date); kan je respectievelijk het aantal dagen in een jaar en het aantal dagen in een maand bepalen.

dan ga je als volgt te werk:
met mktime() maak je een datumobject aan voor de startdatum. met date("z", $startdatum); bepaal je de hoeveelste dag van het jaar dat is. met date("L", $startdatum)?366:365; bepaal je hoeveel dagen er in dat jaar zijn. Dan trek je het nummer van de dag af van aantal dagen die er in dat jaar zijn.
Als het resultaat groter is dan nul tel je bij een variabele $jaren 1 bij. maak je een nieuw datum object aan met het resultaat dat je bekomen bent en begin je opnieuw (while loop).

Als het resultaat kleiner is dan nul, betekent het dat het minder dan een jaar geleden was. Dan ga je verder naar een gelijkaardige loop voor de maanden:

aan trek je hier het aantal dagen vanaf die in dat jaar passen date("t", $date)-date("j", $date); resultaat groter dan 0 -> maand+1 en opnieuw. anders ga je verder en kan je met date("j")-(het aantal resterende dagen) het aantal dagen berekenen.

Mocht het je niet lukken om hiermee een script in elkaar te flansen wil ik nog wel eens helpen.
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

 


www.combell.com