У меня странное поведение с классом DateTime.
Сегодня 2012-05-31. Часовой пояс: «Европа/Вильнюс».
Следующий код
$date = new DateTime('last month');
echo $date->format('Y-m-d');
выводит 2012-05-01
. Это ошибка php? Кстати, $date = new DateTime('-1 месяц');
выводит то же самое.