Du skal konvertere dine datoer til Unix timestamp. Det relativ simpelt. Unix timestamp angiver hvor mange sekunder der er gået siden den første januar 1970.
Derfor skal du bruge 'strtotime', som kan konvertere en given dato om til et timestamp.
Eksempelvis: $dato = strtotime(01-01-2009)
Nu har du så antal sekunder fra 1970 og indtil den pågældende dato i $dato Herefter tager du din dato nr. 2:
$dato2 = strtotime(03-01-2009)
Herfra er det faktisk simpel matematik:
Træk de to fra hinanden, og dividere med 24 så får du antal dage:
Har lige testet koden, den virker ikke helt som den skal...har lige rettet den til, og sat det op i en tabel. Lav en copy-paste af koden, håber du forstår det.
men den skal gern kunne skrive xx år xx måneder xx dage. Altså kun hvis der er gået så lang tid. Hvis der kun er gået 2 dage skal den sellvfølgelig ikke skrive måneder og år.
Værsgo. Her er koden. Lav en copy paste og test det selv. Det er dog lidt svært, om end ikke umuligt, at tage højde for, at der ikke er lige mange dage i hver måned. De to datoer jeg har sat i $dato og $dato1 vil give "1måneder 3dage", hvilket skyldes at i selve koden har jeg sat en måned til at være 30 dage.
Det er også det præcise antal dage, næsten. Når du konvertere en dato med strtotime angiver den det præcise antal dage i de pågældende måneder der er imellem de to datoer. Det eneste der kan forekomme upræcist er, at jeg har regnet hver måned for 30 dage i beregningerne gennem koden.
Jeg kan selvfølige prøve at kigge på dette også, for at gøre det 100 % præcist, men så kan jeg ikke længere gøre det gratis.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.