har ett fält i en databas som accumulerat samlar minuter. Men får inte till en funktion som kan skriva ut fältvärdet till formatet HH:MM:SS
Kan någon hjälpa mig med detta?
6 svar · 902 visningar · startad av peppar
har ett fält i en databas som accumulerat samlar minuter. Men får inte till en funktion som kan skriva ut fältvärdet till formatet HH:MM:SS
Kan någon hjälpa mig med detta?
Det var alldeles för länge sedan jag sysslade med ASP för att jag ska kunna skriva denna funktion åt dig, men eftersom du verkar vara insatt i PHP kanske du lyckas översätta följande PHP-kod:
<?php
$seconds = 7645;
$h = floor($seconds / (60*60));
$r = $seconds % (60*60);
$m = floor($r / 60);
$s = $r % 60;
echo $seconds, ' sekunder blir ', sprintf('%d:%02d:%02d', $h, $m, $s);
?>
Edit:
Såg nu att det var minuter du utgick ifrån... varför vill du då visa sekunder? Nåja... hoppas koden hjälper dig iaf :)
Mitt fel,
det skall naturligtvis vara sekunder som det skall räknas utifrån. Men om jag gör såhär:
m = rs("timeplayed") / 60
h = m / 60
säg att rs("timeplayed") innehåller värdet = 134261
så får jag i retur = 37,2947222222222
hur konverterar jag detta till hh:mm:ss ? finns det någon date funktion för detta?
Du kan använda dig av TimeSerial()-funktionen. Ex:
Response.Write(TimeSerial(0, 0, 3600)) '// Returnerar 01:00:00
Efter att ha Googlat hittade jag denna, hoppas den funkar, har inte stöd för ASP på mina burkar så jag har inte kunnat testa.
http://www.dotnetindex.com/articles/3110_Converting_sceonds_to_hours_minutes_and_seconds.asp
Fick ihop en ganska klantig historia till slut men det funkar för lite tester...
do until rs.eof
sec = 0
hours = 0
min = 0
sec = rs("timePlayed")
do until sec <= 3600
if sec >=3600 then
sec = sec - 3600
hours = hours +1
else
end if
loop
do until sec <= 60
if sec >= 60 then
sec = sec - 60
min = min +1
else
end if
loop