Gå til innhold

beregne uker mellom to datoer


Anbefalte innlegg

Jeg har en fastsatt dato i mysql databasen, og så ønsker jeg å regne meg frem til hvor mange uker en bruker har vert medlem.

 

Benytter meg av denne koden:

<?php
 $days = (strtotime(date("y-m-d")) - strtotime($data["join_date"])) / (86400);
 $weeks = (strtotime(date("y-m-d")) - strtotime($data["join_date"])) / (86400 * 7);
?>

Men det som skjer er at jeg får masse deimaler i output'en (119.571428571).

Riktig svar er ca. 119 uker.

 

Hvordan kan jeg avrunde eller fjerne alle desimalene?

Lenke til kommentar
Videoannonse
Annonse

Prøvd å konvertere til heltall?

$weeks = (int)((strtotime(date("y-m-d")) - strtotime($data["join_date"])) / (86400 * 7));

Merk at den vil runde av nedover mot null. Vil du runde oppover er det bare å addere 0.5:

$weeks = (int)(((strtotime(date("y-m-d")) - strtotime($data["join_date"])) / (86400 * 7)) + 0.5);

Lenke til kommentar

Kjempe flott... Benytter meg av ca. uker, så om det runner av nedover eller oppover spiller irgeunnen liten rolle...

 

Mange takk...

 

Vet du forresten hvordan man konverterer til måneder?

Altså, vil det være got nok å * med 30 eks.?

Endret av Yawa
Lenke til kommentar

Dele antall dager på 30.43 er nok den aller enkleste løsningen dersom det ikke trenger å være nøyaktig. Og det er en løsning som er veldig ytelsesvennlig.

Men om du trenger en presis løsning kan du prøve å kutte ned og tilpasse dette scriptet som beregner år, måneder og dager mellom to datoer: Calculating the difference between dates in years, months, and days

 

PS. Å legge til 0.5 runder ikke alltid oppover slik jeg feilaktig påsto i forrige innlegg, men runder til nærmeste hele. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...