Gå til innhold

Tall til tid (-2.5 timer = -02:30)


Anbefalte innlegg

Skrevet (endret)

Jeg jobber for tiden med tidssoner i et prosjekt, og har støtt på et en liten "utfordring". Ved hjelp av JavaScript har jeg funnet brukerens aktuelle tidssone, men dette tallet oppgis ikke i minutter (00 - 59), men fra 00 - 99. Jeg ønsker en funksjon som konverterer f.eks. -2.5 timer til -02:30, slik at dette kan settes inn i en database.

 

Jeg vet at jeg kan gjøre hvert tall om til en array, ta en utregning osv. men jeg ønsker en mer "delikat" løsning. F.eks. om PHP har en innebygget funksjon for dette formålet, noe den sikkert har :)

 

 

EDIT: Om dette er noe som kan gjøres direkte i en mySQL-spørring, tar jeg gjerne imot tips om dette også. Tallet skal uansett inn i databasen, så det er egentlig unødvendig å bry PHP med dette ;)

Endret av simenss
Videoannonse
Annonse
Gjest Slettet+142
Skrevet (endret)

edit4: Fikset hele funksjonen, og testet den. Funker med positive og negative tall :)

 

function dec_to_time( $decimal ){

$negativ = ($decimal < 0);
$decimal = abs($decimal);

$timer = floor($decimal);
$desimaler = $decimal - $timer;
$minutter = number_format($desimaler * 60, 0);
if($minutter < 10) $minutter = '0'.$minutter;

return (($negativ) ? '-' :' ') . $timer . ':' . $minutter;
}

 

 

Det som stod her før edit4:

 

function dec_to_time( $decimal ){
 $timer = floor($decimal);
 if($decimal >= 0) $desimaler = $decimal - $timer;
 else $desimaler = $decimal + timer;
 $minutter = number_format($desimaler * 60, 0);
 return $timer . ':' . (($minutter < 10) ? '0'.$minutter : $minutter);
}

Slik?

 

edit: number_format()

edit2: ledende null

edit3: fikse minuttutregningen, så den støtter negative tall kanskje? :p

 

 

Endret av Slettet+142
Skrevet (endret)

Takk for svar! Det var egentlig noe slikt jeg ville unngå ;) Tenkte kanskje PHP hadde en innebygget funksjon for dette, uten å benytte IF etc. Men om det ikke kommer noen mer "delikate" forslag, stjeler jeg koden din. Unødvendig å skrive den selv, når andre gjør jobben for en :roll: Og ja, den må støtte negative tall.

Endret av simenss
Skrevet

Jeg bare lurer på hvordan noen kan være i en tidssone som er feks 2.5 timer fra din. Hvis jeg ikke tar helt feil nå så er det en times forskjell mellom hver tidssone, hvordan får du til desimaltall da?

Skrevet
Jeg bare lurer på hvordan noen kan være i en tidssone som er feks 2.5 timer fra din. Hvis jeg ikke tar helt feil nå så er det en times forskjell mellom hver tidssone, hvordan får du til desimaltall da?

9459424[/snapback]

Det finnes flere land som har tidssone som gir desimaler. F.eks. India som har UTC + 5:30 :)

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...