Was ist der beste Weg ein Zeitintervall in PHP hinzuzufügen?

8

Ich möchte einem vorhandenen Datum Zeit hinzufügen. Ich habe 2 String-Variablen:

%Vor%

Ich möchte das endgültige Datum "2013-01-07 13:20:25" berechnen. Die Stunden in der Zeit können größer als 23 sein, was bedeutet, dass dieses Intervall größer als ein ganzer Tag sein kann.

Was ist der beste Weg, dies zu tun?

    
Nelson Teixeira 26.09.2013, 19:01
quelle

5 Antworten

7

Verwenden Sie die DateTime-API :

%Vor%

Dann können Sie es wieder in eine Zeichenfolge mit demselben Datumsformat konvertieren, das Sie mit date() function verwenden würden, wenn Sie:

möchten %Vor%

Weitere Informationen zur Definition von DateInterval finden Sie auf dieser Seite:

DateInterval

  

Das Format beginnt mit dem Buchstaben P für "Punkt". Jede Dauer   Die Periode wird durch einen ganzzahligen Wert gefolgt von einer Periode dargestellt   Bezeichner. Wenn die Dauer Zeitelemente enthält, wird dieser Teil von   der Spezifikation ist der Buchstabe T vorangestellt.

     

Hier sind einige einfache Beispiele. Zwei Tage ist P2D. Zwei Sekunden ist PT2S.   Sechs Jahre und fünf Minuten ist P6YT5M.

In diesem Fall bedeutet PT50H25M10S 50 Stunden, 25 Minuten und 10 Sekunden

Beachten Sie, dass DateInterval erst seit PHP 5.3 verfügbar ist. Wenn Sie eine niedrigere Version verwenden müssen, könnten Sie etwas wie folgt verwenden:

%Vor%     
siergiej 26.09.2013, 19:10
quelle
5

Das ist ein wenig schwierig.

Normalerweise würden Sie hier, wenn es sich um eine statische Periode handelt oder um einen einzelnen Periodentyp handelt, etwas in der Art von:

%Vor%

Dies würde der datetime 5 Minuten hinzufügen. Ich bezweifle jedoch, dass Sie das ganze Intervall passieren können. Was Sie wahrscheinlich tun müssen, ist das Intervall aufzuteilen: und dann jeden Teil des Intervalls (ich nehme an, es ist dynamisch?) Zu dem Datum getrennt hinzuzufügen. Also erste Stunden, dann Minuten, dann Sekunden

Weitere Informationen hierzu finden Sie hier: Ссылка

    
Ricky S 26.09.2013 19:10
quelle
4

Verwenden Sie ein DateInterval und DateTime- & gt; add () :

%Vor%     
Sammitch 26.09.2013 19:08
quelle
3

Sie könnten zuerst das Intervall explodieren lassen und dann die Stunden, Minuten und Sekunden abrufen und dann DateTime verwenden add() um das Intervall hinzuzufügen, wie folgt:

%Vor%

Demo!

    
Amal Murali 26.09.2013 19:20
quelle
1

Falls jemand auf der Grundlage der obigen Antworten benötigt wird, habe ich meine Funktion wie folgt gemacht:

%Vor%

hoffe, es hilft jemandem

    
Nelson Teixeira 26.09.2013 23:46
quelle

Tags und Links