2017-06-09 7 views
2

Ich versuche, ein mathematisches Problem mit Datetime in PHP zu tun. Das Problem, dass die Zeichenfolge, die ich erstelle, dynamisch ist. Wenn ich als eine statische Zeichenfolge hinzufüge, läuft es gut, aber wenn ich die Zeichenfolge dynamisch mache, scheitert es. Hier ist ein Codebeispiel.DateInterval String Probleme

$now = new DateTime(); 
$datetime_interval = 'P' . $filledOrder->hours . 'H'; // hours comes from an object 
$now->add(new DateInterval($datetime_interval)); 

Wenn ich statische Zeichenfolge DateInterval hinzufügen adaequat enter code here

$now->add(new DateInterval('P10H')); 

Jede Hilfe wäre sehr dankbar.

+0

Haben Sie einen Fehler erhalten? Wenn '$ filledOrder-> hours' null oder leer ist, würde das zu etw führen. wie schlechter Formatfehler. Beachten Sie auch, dass Ihr (statisches) Format falsch ist: Aus der Intervallspezifikation: "Wenn die Dauer Zeitelemente enthält, wird diesem Teil der Spezifikation der Buchstabe T vorangestellt." Also sollte es "PT" sein. $ Stunden. 'H' – macghriogair

+0

Nein, ich bekomme keinen Fehler, und wenn ich debugge, sehe ich, dass die Eigenschaft dieses Objekts einen Wert hat –

+0

macghriogair Sie haben Recht. Es funktioniert jetzt vielen Dank. Habe gerade eine Stunde damit verbracht. Nochmals vielen Dank –

Antwort

1

Sie sollten die Eingabe der vollständigen Zeichenfolge als Format auf diese Weise in Betracht ziehen.

P0Y0DT10H0M

+0

Haben Sie diese Lösung ausprobiert? Ersetzen Sie den gewünschten Teil durch eine Variable. –

Verwandte Themen