В скрипте, который содержит
date('Ym-d', strtotime('first day of last month'))
в версии 5.3.10 (localhost) я получаю, например, «2012-03-01».
в версии 5.2.17 (удаленный хост) я получаю '1969-12-31'.
Есть ли выражение, которое вернет ожидаемые результаты (например, «2012-03-01») для обеих версий?
Вы должны использовать функцию mktime () :
<?php echo date('Ym-d', mktime(0,0,0,date('n')-1,1,date('Y'))); //2012-03-01 ?>
См. В действии
Это известная ошибка из PHP 5.2.17
date('Ym-d', strtotime('first day of -1 month')
Работает отлично на PHP 7.0