Es gibt viele Fragen, wie man das anders macht ( von diesem Format umwandeln), aber ich kann nichts finden, wie man es im ISO 8601-Dauerformat in PHP ausgeben kann.
Ich habe also eine Menge Duration-Strings in einem für Menschen lesbaren Format - ich möchte sie im Format ISO 8601 konvertieren, um die Dauer für HTML5-Mikrodaten zu drucken. Im Folgenden finden Sie ein Beispiel für einige der eingehenden Zeichenfolgen und wie sie formatiert werden sollen.
%Vor%Sie bekommen die Idee.
Ich kann die Zeichenfolge in PHP in ein Intervall-Objekt schieben:
%Vor%Aber es scheint keine Ausgabeoption nach ISO 8601 zu geben - wie soll ich das angehen?
Danke allen.
Ich würde es zuerst in eine Zahl umwandeln und dann damit arbeiten.
Verwenden Sie zuerst strtotime()
:
Dann können Sie es für die Dauer analysieren und im PnYnMnDTnHnMnS
-Format ausgeben. Ich würde die folgende Methode verwenden (inspiriert von Ссылка ):
Das Ergebnis: Ссылка
Hier ist eine vereinfachte Version von Erics time_to_iso8601_duration()
-Funktion. Es verliert nicht die Präzision (365 Tage Approximation eines Jahres) und ist etwa 5x schneller. Die Ausgabe ist weniger hübsch, aber immer noch ISO 8601 kompatibel nach dieser Seite.
Tags und Links php duration iso8601 dateinterval