От https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear:
Значение, возвращаемое
getUTCFullYear()
является абсолютным числом, которое соответствует 2000 году, например, 1995.
Что значит быть "совместимым с 2000 годом"?
Фраза "совместимая с 2000 годом" немного вводит в заблуждение и, вероятно, должна быть удалена.
Первоначально ECMAScript был реализован с использованием Java-метода, называемого getYear, который вернул 2-значный год, который был полным годом - 1900, поэтому 1995 был возвращен как 95, 2017 как 117 и 1832 как -68. Этот метод теперь перенесен в приложение ECMA-262 только для веб-браузеров и поддерживается для соображений обратной совместимости, его нельзя использовать в новом коде.
Хотя метод getYear кажется немного странным, он был легко преобразован в полный год, добавив 1900.
Вопрос "Y2K" заключается в том, что после 1 января 2000 года вопрос о 2-значных годах стал проблемой, так как дата 1/1/00 будет интерпретирована как 1/1/1900, когда было запланировано 1/1/2000 (и так далее для любых 2 значный год). Эта проблема сохраняется, поскольку new Date(0,0,1)
создает дату для 1/1/1900, а не 1/1/0000.
Это реальный выпуск 2000 года (Y2K), не получающий год.
Чтобы создать дату между -99 и +99, вам нужно установить полный год, например, для 1 января 23 вам нужно сделать:
var d = new Date();
d.setFullYear(23,0,1);
Что касается getFullYear (и getUTCFullYear), он возвращает полный год, который может быть любым годом, который составляет примерно ± 285,616 с 1970 года. Это само по себе не позволяет избежать проблемы с 2000 годом. Но он вернет фактический год:
var d = new Date();
d.setFullYear(23, 0, 1);
console.log(d.getYear()); // -1877
console.log(d.getFullYear()); // 23
Я думаю, что "совместимый с 2000 годом" просто означает, что он не вызывает проблем из-за "ошибки Y2K".
Просто это означает, что он возвращает четырехзначное число, а не двузначное число, так что нет никакой двусмысленности между годами в разные столетия.
The value returned by getUTCFullYear() is an absolute number that is compliant with year-2000, for example, 1995.
Это предложение означает, что число должно быть положительным, отличным от 0, и оно должно быть написано для inter (соответствует 2000 году, например, 1998, 1999, 000, NO 98,99,00)