Проверьте документы. Это не проблема Y2K - это проблема Y2K! Это решение было принято изначально на C и было скопировано в Perl, по-видимому, JavaScript и, возможно, в несколько других языков. Давным-давно было очевидно, что было желательно использовать двузначные годы, но, что удивительно, у того, кто разработал этот интерфейс, было достаточно предвидения, чтобы понять, что им нужно подумать о том, что произойдет в 2000 году и в последующий период, поэтому вместо предоставления двух последних цифры, они указали количество лет с 1900 года. Вы можете использовать две цифры, если вы спешите или хотите быть рискованными. Или, если вы хотите, чтобы ваша программа продолжала работать, вы можете добавить 100 к результату и использовать полноценные четырехзначные годы.
Я помню первый раз, когда я делал манипуляции с датами в Perl. Как ни странно, я прочитал документы . Видимо, это не обычное дело. Год или два спустя меня вызвали в офис 31 декабря 1999 года, чтобы исправить ошибку, которая была обнаружена в последнюю возможную минуту в контрактном коде Perl, и я никогда не имел к этому никакого отношения. Это была именно та проблема: стандартный вызов даты возвратил годы с 1900 года, и программисты рассматривали его как год с двумя цифрами. (Они предполагали, что получат «00» в 2000 году.) Как молодой неопытный программист, я не мог понять, что мы так много заплатили за «профессиональную» работу, и эти люди даже не удосужились прочитать документация. Это было начало многих лет разочарования; теперь я старый и циничный. :)
В 2000 году ежегодная конференция YAPC Perl была названа «YAPC 19100» в честь этого часто сообщаемого сообщения об ошибке.
В настоящее время, по крайней мере, в мире Perl имеет смысл использовать стандартный модуль для обработки дат, который использует реальные четырехзначные годы. Не уверен, что может быть доступно для JavaScript.