I have a database which stores timestamp, and a UI frontend which contains a date/time field and a time zone field, where the user is supposed to enter the local time into the UI for convenience. Specifically, I am recording the start and end times of past (not future) local events.

The date/time is converted to UTC timestamp internally in PHP code, and the time zone is stored in a separate column, which can be retrieved to get the local time again.

The exact timestamp is important as it is used to calculate statistics based on the real point in the time, not the local representation.

How should we handle user input if the local time is ambiguous e.g. due to DST change?