NAME
Prty::Duration - Rechnen und Konvertieren von Zeiträumen
BASE CLASS
DESCRIPTION
Ein Objekt der Klasse repräsentiert eine Zeitdauer, die intern als numerischer Wert gespeichert wird. Der Wert ist die Anzahl Sekunden, ggf. mit Nachkommastellen.
Als weitere (externe) Repäsentation gibt es eine Darstellung als Zeichenkette in der Form
DdHhMmS.Xs
wobei
D = Anzahl Tage
H = Anzahl Stunden
M = Anzahl Minuten
S = Anzahl Sekunden
X = Bruchteil einer Sekunde
Es gelten folgende Eingenschaften:
führende Anteile bis auf Ss fehlen, wenn sie 0 sind
X fehlt, wenn 0
Ss erscheint immer, auch bei 0 Sekunden
die leere Zeichenkette ('') oder undef entspricht 0 Sekunden
der Sekundenanteil kann Nachkommastellen haben
METHODS
Konstruktor
new() - Konstruktor
Synopsis
$dur = Prty::Duration->new($sec);
$dur = Prty::Duration->new($str);
Description
Instanziiere ein Zeitdauer-Objekt und liefere einen Referenz auf dieses Objekt zurück. Die Zeitdauer kann als numerischer Wert oder als Zeichenkette angegeben werden.
Objektmethoden
asSeconds() - Dauer in Sekunden
Synopsis
$sec = $dur->asSeconds;
Description
Liefere die Zeitdauer in Sekunden - sofern vorhanden, mit Nachkommastellen.
asString() - Dauer als Zeichenkette
Synopsis
$str = $dur->asString;
$str = $dur->asString($prec);
Description
Liefere die Zeitdauer als Zeichenkette in der Form DdHhMmS.Xs.
asArray() - Dauer als Array
Synopsis
@arr | $arr = $dur->asArray;
Description
Liefere die Dauer als Array mit den Komponenten ($days,$hours,$minutes,$seconds).
asFFmpegString() - Dauer als Parameter für ffmpeg-Option -t
Synopsis
$str = $dur->asFFmpegString;
Arguments
- $sec
-
Anzahl Sekunden, ggf. mit Nachkommastellen.
- $prec (Default: 0)
-
Anzahl der Nachkommastellen bei den Sekunden. Ist kein Wert angegeben, wird auf ganze Sekunden gerundet.
Description
Liefere Dauer in der Form wie sie ffmpeg bei der Option -t erwartet, also im Format
H:M:S.XXX
stringToSeconds() - Wandele Zeitdauer-Angabe in Sekunden
Synopsis
$sec = $this->stringToSeconds($str);
Description
Wandele Zeichenkette zur Bezeichnung einer Zeitdauer in die Anzahl Sekunden.
Example
Zeitdauer-Zeichenkette bestehend aus Tagen, Stunden, Mintuten, Sekunden:
$sec = Prty::Duration->stringToSeconds('152d5h25m3.457s');
# 13152303.457
secondsToString() - Wandele Sekunden in Zeitdauer-Zeichenkette
Synopsis
$str = $this->secondsToString($sec,@opt);
Arguments
Options
- $prec (Default: 0)
-
Anzahl der Nachkommastellen bei den Sekunden. Ist kein Wert angegeben, wird auf ganze Sekunden gerundet.
- $unit (Default: undef)
-
Liefere String fester Breite ab Einheit $unit.
Description
Wandele Anzahl Sekunden in eine Zeichenkette zur Bezeichnung einer Zeitdauer.
AUTHOR
Frank Seitz, http://fseitz.de/