Here's the problem: Let's say I have an ISO8601 standard timestamp, for argument's sake, "2003-05-31T13:30:00", and I run that timestamp through a PHP function, strtotime(). This is what happens:

1:30 PM Saturday 31 May 2003 - 2003-05-31T13:30:00

You tell me why that's not half past one.

Here's the current server time:

2:55 AM Wednesday 3 June 2020 - 1591152928

UPDATE: Problem solved!

Removing the "T" from the timestamp fixes the problem. I don't know why but considering the T is a required part of the ISO standard for dates and times I think PHP should be correcting their function. However it seems to work without the T :-)

Using "2003-05-31 13:30:00":

1:30 PM Saturday 31 May 2003 - 2003-05-31 13:30:00


12:00 AM Thursday 1 January 1970 -

Timestamp used: 2003-12-25 23:30:00

11:30 PM Thursday 25 December 2003 - 2003-12-25 23:30:00

6:30 AM Friday 26 December 2003 - 2003-12-25 23:30:00 +7 hours

12:00 AM Thursday 1 January 1970 - 2003-12-25 23:30:00 seconds

4:30 AM Friday 26 December 2003 - 2003-12-25 23:30:00 +5 hours

6:30 PM Thursday 25 December 2003 - 2003-12-25 23:30:00 -05 hours

11:30 PM Thursday 25 December 2003 - 2003-12-25 23:30:00

11:30 PM Thursday 25 December 2003 - 2003-12-25 23:30:00

11:30 PM Thursday 25 December 2003 - 2003-12-25 23:30:00

11:30 PM Thursday 25 December 2003 - 2003-12-25 23:30:00Z

11:30 PM Thursday 25 December 2003 - 2003-12-25 23:30:00 Z

6:30 AM Friday 26 December 2003 - 1072420200

7:30 AM Friday 26 December 2003 - 1072423800

8:30 AM Friday 26 December 2003 - 1072427400

11:30 PM Thursday 25 December 2003 - 1072395000

2:25 AM Thursday 28 May 2054 - 2663547928

Jun 3 2020 2:55 UTC

12:00 PM Wednesday 3 June 2020 - 12:00:00Z

12:00 AM Thursday 4 June 2020 - 24:00:00Z

12:00 AM Wednesday 3 June 2020 - 00:00:00Z

12:00 AM Wednesday 1 January 2003 - 2003-01-01 00:00:00Z