Dailight saving time: fix Atlantic/Azores tz issue with getStartOf fn call #338
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EditListingAvailbilityExceptionForm: the call for getStartOf function with unit 'day' creates an infinite loop.
The underlying issue is that the Moment library returns a bad time as the start of the day:
moment/moment-timezone#409
If we look for the start of the day on 'Atlantic/Azores' time zone, Moment returns 23:00 hours (March 30) because of DST (since 00:00 does not exist for Azores). There are a couple of other time zones that work like this too.
Most time zones use 03:00 to avoid this issue with DST.
The fix (for the infinite loop) is to add the 1-day offset as before + X hours more and then ask for startOf 'day' (or week/month). After that, the startOf then returns 01:00 (March 31) aka the actual start of the day.