Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GBFS API: Zeitzonen inkorrekt #1388

Open
hansmorb opened this issue Oct 24, 2023 · 4 comments · May be fixed by #1389
Open

GBFS API: Zeitzonen inkorrekt #1388

hansmorb opened this issue Oct 24, 2023 · 4 comments · May be fixed by #1389
Labels
bug Something isn't working module:API:GBFS Related to GBFS API Rest modules

Comments

@hansmorb
Copy link
Contributor

  • Habe ein simples System mit einer Location und einem Bike eingestellt.
  • Meine WP-Zimezone ist auf Berlin eingestellt.
  • Im Timeframe ist "Full Day" deselected, "Grid" = "Hourly".
  • Habe eine comfirmed Buchung von 12:00 bis 13:00 eingestellt (allerdings über das WP Admin UI, nicht über eine user-facing-Seite)
  • Damit sollte um 12:11 (Ortszeit) über GBFS ein num_bikes_available von 0 zurückkommen. Leider wird 1 zurückgegeben.
  • Wenn ich den Start der Buchung auf 10:00 stelle, wird num_bikes_available: 0 zurückgegeben.
  • Als last_reported bzw. last_updated wird 1698063091 returned, das entspricht "GMT: Monday, 23. October 2023 12:11:31". Das ist falsch, denn in der GMT Timezone ist es jetzt erst 10:11.

last_reported bzw. last_updated sollten immer in GMT / UTC zurückgegeben werden, denn das Feld ist ja nur eine Zahl ohne TZ-Angabe.

@hansmorb hansmorb added the bug Something isn't working label Oct 24, 2023
@hansmorb hansmorb linked a pull request Oct 24, 2023 that will close this issue
@futuretap
Copy link
Contributor

Leider scheint das Problem noch nicht gefixt zu sein. Das last_reported bzw. last_updated-Feld ist nach wie vor 2 Stunden in der Zukunft.

Und auch der Status gibt nur dann den richtigen Wert zurück, wenn man die Buchungen vorher in UTC-Zeit umgerechnet eingegeben hat. Wie werden die Buchungen in der DB gespeichert? In UTC oder lokaler Zeit? Im [cb_bookings] Widget werden sie jedenfalls nach meiner Beobachtung nicht umgerechnet. Daher gehe ich davon aus, dass die Buchungen in lokaler Zeit gespeichert werden.

futuretap added a commit to futuretap/commonsbooking that referenced this issue Oct 25, 2023
@futuretap
Copy link
Contributor

futuretap commented Oct 25, 2023

Mein Commit behebt den "einfachen" Teil des Problems, nämlich das falsche last_updated / last_reported GBFS Feld.

Das andere Thema ist der falsche Status. Hier bin ich mir nicht sicher, in welcher Zeitzone die Buchungsdaten in der DB gespeichert werden sollen.

@hansmorb
Copy link
Contributor Author

Hmm, ich weiss da leider auch nicht mehr weiter @datengraben @chriwen vielleicht habt ihr ja eine Idee. Ich kenne mich mit den Zeitzonenproblemen nicht so aus.

@datengraben datengraben added the module:API:GBFS Related to GBFS API Rest modules label Nov 10, 2023
@datengraben
Copy link
Contributor

datengraben commented Nov 17, 2023

@futuretap hat Recht, die Meta-Felder repetition-start und repetitions-end sind in lokaler Zeit. Das müsste also immer in der lokalen Zeit(-zone) sein, welche admin-seitig in Wordpress als Zeitzone erstellt wurde.

@hansmorb hatte das sogar im Mai schon an die Methoden getStartDate und getEndDate des Booking Model kommentiert.

Das Zeitzonenen-Verhalten habe ich auch nochmal in unserer Instanz auf den User-Buchungen dort validiert, indem ich MySQL-Meta-Werte für repetition-start und repetition-end mit dem String auf der [cb_bookings]-View verglichen habe. Den Code des PR habe ich noch nicht angeschaut, ich versuche es heute oder morgen noch zu machen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working module:API:GBFS Related to GBFS API Rest modules
Projects
Development

Successfully merging a pull request may close this issue.

3 participants