Вычтите 1 день из первого дня года, который не работает должным образом - PullRequest
0 голосов
/ 17 января 2019

Привет, я пытаюсь вычесть 1 день и 1 год из первого дня года, используя php

код

        var_dump(date('Y-01-01', strtotime('-1 day')));
        var_dump(date('Y-01-01', strtotime('-1 year')));

Результат

string(10) "2019-01-01" string(10) "2018-01-01"

Я ожидаю, что первый результат будет 2018-12-31 вместо 2019-01-01, почему только -1 year работает правильно? пожалуйста помоги . заранее спасибо.

1 Ответ

0 голосов
/ 17 января 2019

Вы фактически не вычитаете день или год из начала года, вы вычитаете их из текущей даты.Кроме того, поскольку вы выводите в формате Y-01-01, обе даты всегда будут иметь 1 для месяца и дня.Вам нужно сначала сгенерировать первый день года, а затем вычесть из него и вывести в формате Y-m-d:

$foy = strtotime(date('Y-01-01'));
var_dump(date('Y-m-d', strtotime('-1 day', $foy)));
var_dump(date('Y-m-d', strtotime('-1 year', $foy)));

Вывод:

string(10) "2018-12-31" 
string(10) "2018-01-01"

Демонстрация на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...