Yawa Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 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
Skagen Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 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
Yawa Skrevet 8. mars 2010 Forfatter Del Skrevet 8. mars 2010 (endret) 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 8. mars 2010 av Yawa Lenke til kommentar
Skagen Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 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
Sec_NB Skrevet 8. mars 2010 Del Skrevet 8. mars 2010 Du kan også bruke evt. ceil(); eller round(); - husker jeg riktig runder ceil() opp, mens round() runder ned. Lenke til kommentar
TheRealL Skrevet 9. mars 2010 Del Skrevet 9. mars 2010 (endret) ceil() fra ceiling (tak) runder opp floor() runder ned (gulv) round runder opp hvis det er over 0,5, ned hvis det er mindre. Med mindre noe annet er fastsatt Endret 9. mars 2010 av Surmoth Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå