Я хочу сделать операцию с заданной строкой даты, которая должна изменить год этой даты, скажем, на 2000. Есть ли способ совершить этот подвиг, используя PHP date ()?
$old_date = '2017-05-05';
// Needs to change 2017 to 2000.
$new_date = ?
Я знаю, что один метод включает использование strtotime ($ old_date. ‘-17 лет’), но он не применим в каждом случае, например, 2018 год, который станет 2001 годом. Есть ли альтернативное решение, позволяющее избежать жесткого кодирования количества лет для вычитания?
НОТА: Для удобства я назначаю строку даты $ old_date. Фактическая дата выбирается из таблицы.
Вычтите годы после тысячелетия
strtotime($old_date . ' -' . date('y', strtotime($old_date)) . 'years')
$time = strtotime($old_date);
$year = 2000;
$new_date = date("Y-m-d", mktime(0, 0, 0, date('n', $time), date('j', $time), $year));