[php] aantal maanden EN dagen tussen een periode

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wat ik wil is het volgende:

code:
1
2
3
$datumverschil = getdatediff("$timestamp1","$timestamp2");

list($maanden,dagen) = split("|",$datumverschil);

getdatediff moet dus iets terug geven als 2|5 (2 maanden en 5 dagen).

Nu komt 't probleem, ik krijg het in mijn hoofd niet voor elkaar om te bedenken hoe ik dit moet aanpakken. Het is niet moeilijk het aantal dagen tussen een periode te berekenen, ook is het niet moeilijk het aantal maanden in een periode te berekenen. Maar beide, dat is erg lastig (of ik zie het gewoon ff niet).

Ik hoef niet persee uitgewerkte code, maar misschien dat iemand me even kan verlichten door te vertellen hoe ik dit moet aanpakken... :) thx!

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Je neemt het aantal seconden verschil, dat deel je door 3600 en je hebt het aantal uur :) Daar trek je dan een getal *24 uit, dat zijn de dagen (moet wel een heel getal blijven!) en de overgebleven getallen zijn de uren :)

ik heb er nog een truukje voor, moet ik even zoeken in mn schrift hoe het ook alweer moest...

code:
1
2
3
4
5
6
7
8
9
10
11
<php
$diff = $datum1 - $datum2);
$days = ($diff - ($diff % 86400)) / 86400; 
$diff = $diff - ($days * 86400); 
$hours = ($diff - ($diff % 3600)) / 3600; 
$diff = $diff - ($hours * 3600); 
$minutes = ($diff - ($diff % 60)) / 60; 
$diff = $diff - ($minutes * 60); 
$seconds = ($diff - ($diff % 1)) / 1; 
return($days,$hours,$minutes,$seconds);
?>

[ Voor 57% gewijzigd door Megamind op 01-07-2004 21:43 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jah maar dat zijn dagen en uren, maar ik moet juist dagen en maanden hebben (das wat lastiger omdat maanden geen vast aantal dagen heeft en dus periode afhankelijk is)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Heb je Google wel geprobeerd? Zie hier mijn eerste hit... :X

http://www.phpexamples.net/codeExSnippet-24.html

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Suffie
  • Registratie: Maart 2002
  • Laatst online: 27-01-2023
ik heb het in C++ een keer opgelost met SQL :X
zoiets
code:
1
2
3
select DATEDIFF ('m', $begindatum, $einddatum) as maanden
//en
select DATEDIFF ('d', $begindatum, $einddatum) as dagen


en dan was er nog wat gegoochel met het aftrekken van volle maanden uit het totaal aantal dagen
en wat je overhield was dan de restdagen

edit: kan dat niet met mktime?

[ Voor 9% gewijzigd door Suffie op 01-07-2004 22:43 ]

I don't suffer from insanity, I enjoy every minute of it
Trotse mama van Thijs&Bas


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

DateDiff is niet te gebruiken in PHP, en dat is waar TS om vroeg... Bovendien zul je met mktime best wat kunnen oplossen, maar er zijn voor dit probleem gewoon 1000 wegen die naar Rome leiden. Welke het beste is moet TS maar kiezen, maar ik denk dat de link die ik noemde een aardige oplossing is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1