Узнал об одной особенности работы с датами в JavaScript:
var date = new Date(99, 0, 1, 2, 3, 4, 567);
console.log(date); // Fri Jan 01 1999 02:03:04 GMT+0300 (RTZ 2 (зима))
var date = new Date(Date.parse("77-01-26"));
console.log(date); // Wed Jan 26 1977 00:00:00 GMT+0300 (RTZ 2 (зима))
Не уверен, что есть случаи, когда нужны даты из первого века, но все же: при попытке их установить получим совсем не то, что ожидалось.
С датами от 100 года и далее все нормально:
var date = new Date(100, 0, 1, 2, 3, 4, 567);
console.log(date); // Fri Jan 01 0100 02:03:04 GMT+0300 (RTZ 2 (зима))
Поможет такое решение:
var date = new Date(Date.parse("77-01-26"));
date.setFullYear("77");
console.log(date); // Tue Jan 26 0077 00:00:00 GMT+0300 (RTZ 2 (зима))
Отчасти костыль, но все же.