Я не уверен, что это ошибка, так как после поиска я не могу найти повторяющихся событий, однако это поставило меня в тупик.
Посреди (довольно болезненного) сценария, предназначенного для преобразования множества записей свободного текста в полезные записи даты, мой верный друг strtotime(), похоже, подвел меня.
В целях тестирования я свел код к следующему:
<?=date('Y', strtotime("1999"));?>
Выходные данные: 1999 г.
<?=date('Y', strtotime("1981"));?>
Выходные данные: 1981 г.
<?=date('Y', strtotime("2001"));?>
Выходные данные: 2012 г.
<?=date('Y', strtotime("2021"));?>
Выходные данные: 2012 г.
Все выглядит нормально, пока ввод не превысит «1999». С этого момента каждый год до и после текущего возвращает текущий год (2012).
Любой вклад очень ценится.