<?php
$date = strtotime('first day of previous month 00:00:00', new DateTimeZone('UTC'));
var_dump($date->format('Y-m-d H:i:s')); // string(19) "2013-11-01 00:00:00"
$date = new DateTime('first day of previous month 00:00:00', new DateTimeZone('Europe/Amsterdam'));
var_dump($date->format('Y-m-d H:i:s')); // string(19) "2013-11-01 00:00:00"
$date = new DateTime('midnight first day of previous month', new DateTimeZone('Europe/Amsterdam'));
var_dump($date->format('Y-m-d H:i:s')); // string(19) "2013-11-01 00:00:00"
$date = new DateTime('midnight first day of previous month', new DateTimeZone('UTC'));
var_dump($date->format('Y-m-d H:i:s')); // string(19) "2013-11-01 00:00:00"
Fatal error: Uncaught TypeError: strtotime(): Argument #2 ($baseTimestamp) must be of type ?int, DateTimeZone given in /in/D3fk0:2
Stack trace:
#0 /in/D3fk0(2): strtotime('first day of pr...', Object(DateTimeZone))
#1 {main}
thrown in /in/D3fk0 on line 2
Process exited with code 255.
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
Warning: strtotime() expects parameter 2 to be int, object given in /in/D3fk0 on line 2
Fatal error: Uncaught Error: Call to a member function format() on bool in /in/D3fk0:3
Stack trace:
#0 {main}
thrown in /in/D3fk0 on line 3
Process exited with code 255.
Warning: strtotime() expects parameter 2 to be integer, object given in /in/D3fk0 on line 2
Fatal error: Uncaught Error: Call to a member function format() on boolean in /in/D3fk0:3
Stack trace:
#0 {main}
thrown in /in/D3fk0 on line 3
Process exited with code 255.
Output for 5.6.8 - 5.6.28
Warning: strtotime() expects parameter 2 to be long, object given in /in/D3fk0 on line 2
Fatal error: Call to a member function format() on boolean in /in/D3fk0 on line 3
Process exited with code 255.
Output for 5.4.1 - 5.4.45, 5.5.24 - 5.5.35
Warning: strtotime() expects parameter 2 to be long, object given in /in/D3fk0 on line 2
Fatal error: Call to a member function format() on a non-object in /in/D3fk0 on line 3
Process exited with code 255.