Time um Faktor verändern

Moin,

ich habe da ein kleines Problem mit PHP und habe bei google nichts gefunden. Und zwar kriege ich ein Time aus einer MySQL Datenbank. Dieses soll nun um einen Faktor, z.B. 0.5, verändert werden. Heißt also wenn aus der Datenbank die time 00:05:00 kommt, soll er mit 00:02:30 weiterarbeiten.

Danke im voraus für antworten

mfg Ninron

Moin,

ich habe da ein kleines Problem mit PHP und habe bei google
nichts gefunden. Und zwar kriege ich ein Time aus einer MySQL
Datenbank. Dieses soll nun um einen Faktor, z.B. 0.5,
verändert werden. Heißt also wenn aus der Datenbank die time
00:05:00 kommt, soll er mit 00:02:30 weiterarbeiten.

wandle deine zeitdauer in sekunden. dann hast du einen integer, mit dem du normal weiterrechnen kannst.

Guten Tag,

vielen dank, das hilft mir weiter.

Hallo nochmal,
ich komm leider gar nicht mit diesen times in php klar, kann mir da jemand einen kleinen codeschnipsel oder so geben?

mfg ninron

Hi
Also wenn du aus der Datenbank 00:05:00 herausbekommst sollte dein Codeschnippsel so aussehen (Anmerkung dies ist nur eine Anregung um einen Weg aufzuzeigen):

$dTimeFaktor = 0.5;
$sTime = '00:05:00';
list( $sStunden, $sMinuten, $sSekunden ) = explode( ':', $sTime );
$iStunden = intval( $sStunden );
$iMinuten = intval( $sMinuten );
$iSekunden = intval( $sSekunden );
echo "$iStunden:blush:iMinuten:blush:iSekunden
";
$iTime = mktime( $iStunden, $iMinuten, $iSekunden, 0, 0, 0 ) - mktime( 0, 0, 0, 0, 0, 0 );
echo $iTime . '
';
$iTimeNew = $iTime \* $dTimeFaktor;
echo $iTimeNew . '
';
echo strftime( '%H:%M:%S', $iTimeNew-3600 );

Gruß Lamer

Vielen dank, es funktioniert bestens!

mfg Ninron

/close

Alternativ kannst du die Berechnung auch von MySQL ausführen lassen:

SELECT
SEC_TO_TIME(TIME_TO_SEC(TimeFeld)/2) AS TimeFeld

Ist meiner Meinung nach etwas schöner und in vielen Fällen ist es schneller MySQL mit der Berechnung von bestimmten Werten zu beauftragen, da es intern ohnehin als Zahlenwert vorhanden ist. In PHP hingegen brauchen die String-Funktionen viel Rechenzeit.