gmmktime is supposed to produce a Unix timestamp from a GMT time and date. Only it works from local time and converts back to GMT. I found that gmmktime was an hour out for a couple of hours after the clocks changed.
Without an indication of the timezone there's an hour when the clocks go back where a specific time could be either before the clocks changed or after the clocks changed, e.g.
Sunday, 29 October 2017, 01:00:00
Sunday, 29 October 2017, 01:00:01
...
Sunday, 29 October 2017, 01:59:58
Sunday, 29 October 2017, 01:59:59
Sunday, 29 October 2017, 01:00:00
Sunday, 29 October 2017, 01:00:01
...
Sunday, 29 October 2017, 01:59:58
Sunday, 29 October 2017, 01:59:59
Sunday, 29 October 2017, 02:00:00
With a time of "Sunday, 29 October 2017, 01:00:00" there's no way to know whether it is the first one or the second one.