Symfony/Doctrine Dateinterval (Zeit, Dauer), wie um es zu speichern in Datenbank
Ich habe eine Frage, ich Schreibe eine Anwendung, die eine Art Reservierung für den service. Der Dienst hat eine Dauer Zeit, sagen wir zum Beispiel:
Einer massage, die dauert 1 Stunde und 15 Minuten
Dann mache ich eine Reservierung system für diese Dienste. Während ich das Tue Reservierung, die ich brauche, zu berechnen, Ende datetime.
Also ich habe ein Datetime in meiner Datenbank für "start" und ich habe keine Ahnung, wie bewahren Sie die Dauer. So nach der Buchung kann ich leicht sagen, dass ist am Ende in einigen anderen datetime.
Ich hoffe, ich war klar genug.
Die Frage ist, wie bewahrt man die Dauer in der Datenbank und wie Sie erhöhen Startdatum, so dass ich don ' T haben keine Probleme mit den Zeitzonen etc.
Danke für die Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Weg nur mit PHP (und nicht mit SQL), die die Zeit verwalten, im zweiten zur Vereinfachung der Berechnung :
EDIT 1 :
Beantworten Ihre Zeitzone Thema, das am meisten ist es einfacher (denke ich) ist die Verwendung von timestamp ! Bei der Darstellung wird der timestamp umgewandelt werden, als eine Zeitzone, Datum. Wenn der erste Zeitstempel von datetime, es ist die gleiche, aber Sie ist berechnet auf die Zeitzone der Maschine. Also timestamp ist geteilt zwischen Zeitzonen ^^
Hier das snippet bearbeitet :
EDIT 2 :
Zur Beantwortung Ihren Kommentar, wenn Sie eine änderung der Laufzeit, speichern Sie einfach die Dauer in der Datenbank.
Beim Bearbeiten der Dauer :
Neben Sybio Antwort, können Sie eine
time
Datentyp für die Dauer der Buchung zu erhalten. Dann Lehre akzeptiert eine Instanz von\DateInterval
.Dann in Ihren controller, Sie könnten so etwas tun: