<?php
/**
* Umrechnen formatierter Zeitangaben in Sekunden
* @author: Jörg Reinholz, fastix WebDesign & Consult, Kassel - http://www.fastix.org/
* @version: 1.0.1
**/
function TimeNormalizer ($t) {
if ( '-' == $t[0] ) {
$isNegativ = true;
} else {
$isNegativ = false;
}
if (! $arTupels[count($arTupels)-1] ) {
}
# Tests:
if ( count($arTupels) > 4 ) {
error_log("Unzulässige Anzahl von Zifferngruppen in zu verarbeitender Eingabe: '$t'");
return false;
}
$s = 0;
$arFaktors = array(1, 60, 3600, 86400);
for ($i = 0; $i < count($arTupels); $i++) {
$s = $s + $arTupels[$i] * $arFaktors[$i];
}
if ($isNegativ) {
return ( $s * -1 );
} else {
return $s;
}
}
### Funktionstests:
# (Einschalten durch Änderung von /* zu #/* in der nächsten Zeile)
#/*
testTimeNormalizer('30');
testTimeNormalizer('-30.6');
testTimeNormalizer('90');
testTimeNormalizer('20:30');
testTimeNormalizer('-20:30');
testTimeNormalizer('-20:30,6');
testTimeNormalizer('10:20:30');
testTimeNormalizer('-10:20:30');
testTimeNormalizer('1 10:20:30');
testTimeNormalizer('-1 10:20:30');
testTimeNormalizer('-1T 10:20:30,6');
testTimeNormalizer('1 Tag 10 Stunden 20 Minuten und 30,6 Sekunden');
testTimeNormalizer('-5d 10h 20m 30,6s');
function testTimeNormalizer($v) {
echo "Eingabe: $v\n";
$w = TimeNormalizer($v);
echo "errechnet: $w \n";
echo "absolut: $r \n";
$d = floor ( $r / 86400 );
echo "Tage: $d \n";
$r = $r - $d * 86400;
$h = floor ( $r / 3600 );
echo "Stunden: $h \n";
$r = $r - $h * 3600;
echo "Minuten: $m \n";
$r = $r - $m * 60;
echo "Sekunden: $s \n\n";
}
#*/