У меня есть этот небольшой сегмент кода, который печатает интервал дат:
$week = strtotime("-1 week");
$basic = date('Y', strtotime("-1 week"));
$start = __('%s-%s', $basic, date('m-d', strtotime("monday this week", $week)));
$end = __('%s-%s', $basic, date('m-d', strtotime("sunday this week", $week)));
Код дает следующий результат:
30.08.18 - 05.08.18
Однако я хочу, чтобы код давал мне значения из прошлая неделя, поэтому он должен быть: 30.07.18 - 05.08.18
(Выделено для удобства чтения).
Я пробовал несколько вариантов, таких как изменение основного времени с Y на M, но безрезультатно. Я также просмотрел предыдущие вопросы и решения, но не решил проблему.
Заранее спасибо.
Обновлять Ошибка произошла в другой части системы, которая обрабатывала время и создание файлов. Код в этом посте правильный.
$ сегодня = дата ('Г-м-д'); $ oneweekago = date ('Y-m-d', strtotime ('- 7 дней')); echo $ сегодня. PHP_EOL. $ oneweekago;
$ week = strtotime ("- 1 неделя"); var_dump (date ('d-m-Y', strtotime ("понедельник на этой неделе", $ week)). '-' .date ('d-m-Y', strtotime ("воскресенье на этой неделе", $ week)));






Я считаю, что вы хотите использовать ключевое слово last, см. Документация по относительным форматам, которое объясняет это. Но в основном это небольшой метод проб и ошибок.
php > echo date('Y-m-d', strtotime('-1 week'));
2018-08-01
php > echo date('Y-m-d', strtotime('first day of last week'));
2018-07-01
php > echo date('Y-m-d', strtotime('last week'));
2018-07-30
Спасибо за комментарии! Результат распечатывается в формате PDF. По какой-то причине приведенные выше предложения не помогли мне решить проблему (было довольно много проб и ошибок), но я мог бы подойти немного ближе, чтобы понять проблему. Я выложу решение здесь, когда решу. Спасибо!
Что такое
__()?