JV Skrevet 22. juli 2005 Del Skrevet 22. juli 2005 (endret) Hei hei Jeg har ett problem jeg ikke skjønner noe av. Hvis jeg bruker denne: $inn="8, 20"; $ut="15, 31"; $totaltid=(mktime ($ut)-mktime ($inn))/60; echo $totaltid; får jeg dette resultetet: 420 Om jeg bruker denne: $totaltid=(mktime ("15, 31")-mktime ("8, 20"))/60; echo $totaltid; får jeg også 420. Bruker jeg derimot denne (altså, ett par " mindre): $totaltid=(mktime (15, 31)-mktime (8, 20))/60; echo $totaltid; får jeg svaret: 431 Det er det riktige antall minutter... Hvorfor er det sånn og hvordan kan jeg få fikset det når jeg må bruke denne varianten? (tidspunktene skal hentes ut fra en mysqldatabase): $inn="8, 20"; $ut="15, 31"; $totaltid=(mktime ($ut)-mktime ($inn))/60; echo $totaltid; Endret 23. juli 2005 av JV Lenke til kommentar
Loomy Skrevet 22. juli 2005 Del Skrevet 22. juli 2005 Skal $inn og $ut forestille minutter,sekunder elns? I så fall må du muligens bruke . istedenfor , - og ikke minst fjerne mellomrommet etter kommaet. Woho! 4000 innlegg! *feire med en Grandis* Lenke til kommentar
john_h Skrevet 22. juli 2005 Del Skrevet 22. juli 2005 Hvis du tar en titt på PHPs dokumentasjon av mktime ser du at den aksepterer integers, dvs. heltall. Hvis du da gir den en variabel i form av en string, må den typecastes til et heltall først, og det er der du får feilen din fra. Kjører du denne koden ser du at du får ut 15 som svar. <?php $s = "15, 31"; echo (int) $s; ?> Forskjellen mellom: $totaltid=(mktime ("15, 31")-mktime ("8, 20"))/60; echo $totaltid; og: $totaltid=(mktime (15, 31)-mktime (8, 20))/60; echo $totaltid; er at den første kun angir én parameter, en string som typecastes til int 15, mens den andre angir to heltall. Lenke til kommentar
JV Skrevet 22. juli 2005 Forfatter Del Skrevet 22. juli 2005 (endret) Hmmm... men john_h; hvordan kan jeg da angi 2 heltall slik at det fungerer? Finnes det noen mulighet? Jeg henter ut klokkeslettene fra en database og de kommer ut som f.eks 15:32. Jeg har da brukt $ut=str_replace(":",", ",$klokke_ut); for å gjøre det om til 15, 32... Endret 22. juli 2005 av JV Lenke til kommentar
JV Skrevet 22. juli 2005 Forfatter Del Skrevet 22. juli 2005 Hmm.. noen som vet en annen måte jeg kan regne ut hvor lenge det er mellom 2 tidspunkt da? Si at jeg har 08:00 og 15:30 i en database.. hvordan regner jeg da ut tiden fra 08:00 til 15:30? (lenge siden jeg har hatt matte på skolen ) Lenke til kommentar
LoS Skrevet 22. juli 2005 Del Skrevet 22. juli 2005 (endret) Regne det ut rett i spørringen? http://dev.mysql.com/doc/mysql/en/date-calculations.html Endret 22. juli 2005 av LoS Lenke til kommentar
JV Skrevet 22. juli 2005 Forfatter Del Skrevet 22. juli 2005 Hmm.. det skjønte jeg fint lite av du... fant bare om dager og datoer der.. jeg trenger timer og minutter... fanken at dette skal være så vanskelig da.. det funker jo om jeg skriver inn klokkeslettet selv men ikke om jeg bruker en variabel som inneholder akkurat det samme Jeg forstår fremdeles ikke hvordan disse to kan være forskjellige: $inn="13, 05"; $ut="15, 39"; $totaltid=(mktime($ut)-mktime($inn))/60; $totaltid=(mktime(15, 39)-mktime(13, 05))/60; Lenke til kommentar
kakkle Skrevet 22. juli 2005 Del Skrevet 22. juli 2005 (endret) Okei... Først forskjellen på de to: Den første lever kun et argument inn i funksjonen, og i tillegg, er dette en tekst streng(altså feil ift php.net, som sier int), mens den andre leverer to argumenter inn i funksjonen, som er heltall (int), altså det som står i definisjoen av funksjonen på php.net. Komma tegnet brukes for å skille argumenter inn til en funksjon. HAr du f.eks prøvd å bruke strtotime(), eller noe lignende? EDIT: Hadde du f.eks satt variablene slik: $inn_time=13; $inn_min=05; $ut_time=15; $ut_min=39; for så å satt disse inn i funksjonen: $totaltid = (mktime($inn_time, $inn_min)-mktime($ut_time, $ut_min))/60 Så tror jeg det hadde funket litt bedre. Håper du skjønner forskjellen Endret 22. juli 2005 av kakkle Lenke til kommentar
arnizzz Skrevet 22. juli 2005 Del Skrevet 22. juli 2005 <?php $tid_1_db = '08:00'; $tid_2_db = '15:30'; $tid_1 = explode(':', $tid_1_db); $tid_2 = explode(':', $tid_2_db); $totaltid=(mktime($tid_1[0], $tid_1[1])-mktime($tid_2[0], $tid_2[1]))/60; ?> Lenke til kommentar
JV Skrevet 23. juli 2005 Forfatter Del Skrevet 23. juli 2005 Arnizz: jeg var den jeg brukte tilslutt.. fungerte fint 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å