Frank Seitz
and 1 contributors

NAME

Prty::Duration - Rechnen und Konvertieren von Zeiträumen

BASE CLASS

Prty::Object

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

$sec

Anzahl Sekunden, ggf. mit Nachkommastellen.

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/