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:

5:59 PM Saturday 22 February 2025 - 1740247155

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

5:29 PM Sunday 16 February 2059 - 2812642155

Feb 22 2025 17:59 UTC

12:00 PM Saturday 22 February 2025 - 12:00:00Z

12:00 AM Sunday 23 February 2025 - 24:00:00Z

12:00 AM Saturday 22 February 2025 - 00:00:00Z

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