PHP DateTime wird auf die nächsten 10 Minuten aufgerundet

8

Ich rufe eine Datetime aus einem mysql-Feld ab, aber ich muss es up auf die nächsten 10 Minuten runden.

Beispiel: Wenn die Datumseinstellung 2013-11-06 14:00:01 ist, möchte ich die Uhrzeit als 6/11/2013 14:10 zurückgeben.

Was ist der einfachste Weg, dies zu tun?

%Vor%

Irgendein Rat geschätzt.

Danke.

    
Dan 06.11.2013, 14:16
quelle

9 Antworten

15
___ answer3195692 ___

Die Antwort von @rand weist einen Fehler auf, wenn die DateTime, die wir runden möchten, bereits ein 10-Minuten-Vielfaches ist. Es wird zu 10 Minuten später springen, während es nicht gewünscht wird.

Außerdem ist es immer nicht erwünscht, mit %code% zur nächsten Minute zu springen, wenn Sekunden bereits auf Null stehen.

Diese erweiterte Funktion behebt diese Fehler und verwendet einen $ precision-Parameter, um mehr Anwendungsfälle abzudecken.

%Vor%

Diese Funktion ist jetzt perfekt für meinen Gebrauch und wahrscheinlich für andere Leute.

    
___ answer21995109 ___
%Vor%

Und der Test:

%Vor%

Viel Spaß.

    
___ answer35803662 ___

Ich würde Zeitstempel verwenden:

%Vor%     
___ qstnhdr ___ PHP DateTime wird auf die nächsten 10 Minuten aufgerundet ___ answer40891513 ___

Ich bin auf diese Frage gestoßen und habe mich gefragt, warum alle Lösungen so kompliziert sind. Es ist einfach das:

%Vor%     
___ answer19815242 ___

Sie müssen %code% function verwenden, um das Datum in einen Zeitstempel zu konvertieren und dann Minuten hinzuzufügen oder zu entfernen, zum Beispiel

%Vor%     
___ answer49321405 ___

Ich habe die Klasse überladen und eine Methode erstellt:

%Vor%     
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ tag123datetime ___ Ein DateTime-Objekt beschreibt in vielen Programmiersprachen ein Datum und eine Uhrzeit. Je nach dem Kontext, in dem es verwendet wird, und der spezifischen Implementierung kann es entweder einen Zeitpunkt oder eine Position in einem Kalender ausdrücken. Dieses Tag kann für alle Probleme mit Datum und Uhrzeit verwendet werden. ___ answer43468428 ___

Einfacher Code

%Vor%     
___ answer40084666 ___

Mit den Funktionen ceil, floor und round können Sie eine DateTime wie folgt nach oben, unten oder in den nächsten Minuten runden:

%Vor%     
___ qstntxt ___

Ich rufe eine Datetime aus einem mysql-Feld ab, aber ich muss es up auf die nächsten 10 Minuten runden.

Beispiel: Wenn die Datumseinstellung 2013-11-06 14:00:01 ist, möchte ich die Uhrzeit als 6/11/2013 14:10 zurückgeben.

Was ist der einfachste Weg, dies zu tun?

%Vor%

Irgendein Rat geschätzt.

Danke.

    
___
rand 06.11.2013, 14:30
quelle
12
___ answer3195692 ___

Die Antwort von @rand weist einen Fehler auf, wenn die DateTime, die wir runden möchten, bereits ein 10-Minuten-Vielfaches ist. Es wird zu 10 Minuten später springen, während es nicht gewünscht wird.

Außerdem ist es immer nicht erwünscht, mit ($datetime->add(new \DateInterval("PT".(60-$second)."S")); zur nächsten Minute zu springen, wenn Sekunden bereits auf Null stehen.

Diese erweiterte Funktion behebt diese Fehler und verwendet einen $ precision-Parameter, um mehr Anwendungsfälle abzudecken.

%Vor%

Diese Funktion ist jetzt perfekt für meinen Gebrauch und wahrscheinlich für andere Leute.

    
___ answer21995109 ___
%Vor%

Und der Test:

%Vor%

Viel Spaß.

    
___ answer35803662 ___

Ich würde Zeitstempel verwenden:

%Vor%     
___ qstnhdr ___ PHP DateTime wird auf die nächsten 10 Minuten aufgerundet ___ answer40891513 ___

Ich bin auf diese Frage gestoßen und habe mich gefragt, warum alle Lösungen so kompliziert sind. Es ist einfach das:

%Vor%     
___ answer19815242 ___

Sie müssen %code% function verwenden, um das Datum in einen Zeitstempel zu konvertieren und dann Minuten hinzuzufügen oder zu entfernen, zum Beispiel

%Vor%     
___ answer49321405 ___

Ich habe die Klasse überladen und eine Methode erstellt:

%Vor%     
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ tag123datetime ___ Ein DateTime-Objekt beschreibt in vielen Programmiersprachen ein Datum und eine Uhrzeit. Je nach dem Kontext, in dem es verwendet wird, und der spezifischen Implementierung kann es entweder einen Zeitpunkt oder eine Position in einem Kalender ausdrücken. Dieses Tag kann für alle Probleme mit Datum und Uhrzeit verwendet werden. ___ answer43468428 ___

Einfacher Code

%Vor%     
___ answer40084666 ___

Mit den Funktionen ceil, floor und round können Sie eine DateTime wie folgt nach oben, unten oder in den nächsten Minuten runden:

%Vor%     
___ qstntxt ___

Ich rufe eine Datetime aus einem mysql-Feld ab, aber ich muss es up auf die nächsten 10 Minuten runden.

Beispiel: Wenn die Datumseinstellung 2013-11-06 14:00:01 ist, möchte ich die Uhrzeit als 6/11/2013 14:10 zurückgeben.

Was ist der einfachste Weg, dies zu tun?

%Vor%

Irgendein Rat geschätzt.

Danke.

    
___
berturion 18.10.2015 08:09
quelle
2

Mit den Funktionen ceil, floor und round können Sie eine DateTime wie folgt nach oben, unten oder in den nächsten Minuten runden:

%Vor%     
markpietrus 17.10.2016 11:00
quelle
1
%Vor%

Und der Test:

%Vor%

Viel Spaß.

    
liuggio 24.02.2014 17:48
quelle
1

Ich würde Zeitstempel verwenden:

%Vor%     
Martin Vseticka 04.03.2016 18:41
quelle
1

Ich bin auf diese Frage gestoßen und habe mich gefragt, warum alle Lösungen so kompliziert sind. Es ist einfach das:

%Vor%     
esqilin 30.11.2016 14:58
quelle
0

Sie müssen strtotime() function verwenden, um das Datum in einen Zeitstempel zu konvertieren und dann Minuten hinzuzufügen oder zu entfernen, zum Beispiel

%Vor%     
Jack K Fouani 06.11.2013 14:53
quelle
0

Einfacher Code

%Vor%     
frops 18.04.2017 09:28
quelle
-1

Ich habe die Klasse überladen und eine Methode erstellt:

%Vor%     
nicolas camoin 16.03.2018 13:00
quelle

Tags und Links