Zeitmanipulation in PHP: Addieren und Subtrahieren von 30 Minuten von H:i
In PHP ist die Bearbeitung zeitbezogener Aufgaben für verschiedene Zwecke von entscheidender Bedeutung Anwendungen. Ein häufiges Szenario besteht darin, Zeitwerte im Format „H:i“ zu ändern. Dieses Format stellt die Zeit in Stunden und Minuten dar, beispielsweise „10:00“ oder „13:30“.
Um bestimmte Zeitintervalle von solchen Werten zu addieren oder davon zu subtrahieren, können wir strtotime() und date( verwenden. ) Funktionen. Es kann jedoch zu unerwartetem Verhalten kommen, wenn der anfängliche Zeitwert nicht ordnungsgemäß als Zeitstempel formatiert ist.
Betrachten wir ein Beispiel, in dem wir zwei neue Werte erstellen möchten: $startTime 30 Minuten vor $time und $endTime 30 Minuten nach $time, wobei $time das Format „H:i“ hat.
Der folgende Codeausschnitt mag auf den ersten Blick erscheinen vernünftig:
$startTime = date("H:i",strtotime('-30 minutes',$time));
$endTime = date("H:i",strtotime(' 30 minutes',$time));
Bei der Übergabe von "10:00" als $time stoßen wir jedoch auf unerwartete Ergebnisse: $startTime wird „00:30“ anstelle des beabsichtigten „09:30“ und $endTime wird zu „01:30“ anstelle von „10:30“.
Das Hauptproblem liegt in der anfängliche Annahme, dass $time ein Zeitstempel ist. Es handelt sich jedoch lediglich um eine Zeichenfolge im Format „H:i“. Um dieses Problem zu lösen, müssen wir zunächst $time mit der Funktion strtotime() in einen Zeitstempel konvertieren.
Der korrigierte Code:
$time = strtotime('10:00');
$startTime = date("H:i", strtotime('-30 minutes', $time));
$endTime = date("H:i", strtotime(' 30 minutes', $time));
Jetzt stimmen die Ergebnisse mit unseren Erwartungen überein: $startTime wird zu „09:30“ und $endTime wird zu „10:30“. Indem wir sicherstellen, dass $time von Anfang an ein Zeitstempel ist, können wir in PHP genaue Zeitmanipulationen durchführen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3