Для некоторых задач проекта мне нужно дату, вводимую пользователем, уменьшить на три часа, для получения GMT.
Делаю это так:
var GMTTimeShift=3;
var fdate=document.getElementById("fd1").value.split('-');
var d1=new Date();
d1.setFullYear( fdate[2],parseInt(fdate[1])-1,fdate[0] );
d1.setHours(parseInt(document.getElementById("ft1").value), parseInt(document.getElementById("ft2").value));
parseInt(document.getElementById("ft2").value));
var a=d1.getTime()-GMTTimeShift*3600000;
d1.setTime(a);
console.log(d1);
Соответственно, есть три поля ввода, в которых прописывается, например
00 00 01-08-2012
так вот.
при переходе с месяца на месяц, а именно 1 августа и 1 сентября отлавливаю странный глюк - мы получаем не 21 00 30-07-2012, а 21 00 30-11-2011 21:00
подскажите пожалуйста причину такого поведения.