... | ... | @@ -35,6 +35,8 @@ The start and end dates have traditionally provided the _nominal perspective_ (* |
|
|
* It provides backward-compatibility for [relevant screens/tools/APIs](#affected) -- by returning the start and end dates in the same way. (_If you call `Event.get +w id=4 +s start_date` in v5.30 and v5.60, you should get the same value._)
|
|
|
* Screens may be updated incrementally to give richer information (using any of the columns, depending on the downstream goals+preferences).
|
|
|
|
|
|
Note that "universal time" is based on current projections but DST rules may vary in the future, so since the nominal date/time/timezone is authoritative, the universal time may need to be re-calculated. (See [examples](https://www.vertabelo.com/blog/the-proper-way-to-handle-multiple-time-zones-in-mysql/#does%20this%20data%20represent%20a%20point%20in%20time%20in%20the%20past%20or%20in%20the%20future?).)
|
|
|
|
|
|
Changes required to support timezones:
|
|
|
|
|
|
1. Addition of DATETIME columns to hold the GMT date & time for indexed sorting:
|
... | ... | @@ -54,7 +56,7 @@ Changes required to support timezones: |
|
|
6. An additional token to show the event timezone †
|
|
|
7. Changes to various system workflow message to display timezone information with event messages †
|
|
|
8. Additional fields to the API to show the event timezone †
|
|
|
|
|
|
9. Process to re-calculate universal times after timezone rule changes.
|
|
|
|
|
|
† Already implemented in original PR
|
|
|
|
... | ... | @@ -158,6 +160,12 @@ Sorted by `Status,Environment`: |
|
|
| :question: | Pantheon | Needs testing/clarification. |
|
|
|
| :question: | WP Engine | Needs testing/clarification. |
|
|
|
|
|
|
## Other reading
|
|
|
|
|
|
- First attempt at introducing timezones for events (V1 above): https://lab.civicrm.org/dev/core/-/issues/2122
|
|
|
- Useful reading (linked in above PR): ["Today I learned about MySQL and timezones"](https://javorszky.co.uk/2016/06/06/today-i-learned-about-mysql-and-timezones/), ["The Proper Way to Handle Multiple Time Zones in MySQL"](https://www.vertabelo.com/blog/the-proper-way-to-handle-multiple-time-zones-in-mysql/)
|
|
|
- ["Year 2038 problem"](https://en.wikipedia.org/wiki/Year_2038_problem)
|
|
|
|
|
|
## Related Tasks
|
|
|
|
|
|
https://lab.civicrm.org/dev/core/-/issues/3152 |