Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   странное поведение Date() - баг или фича? (https://javascript.ru/forum/misc/30373-strannoe-povedenie-date-bag-ili-ficha.html)

deivan 02.08.2012 12:56

странное поведение Date() - баг или фича?
 
Для некоторых задач проекта мне нужно дату, вводимую пользователем, уменьшить на три часа, для получения 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

подскажите пожалуйста причину такого поведения.

nerv_ 02.08.2012 13:00

проверьте parseInt на предмет
alert( parseInt( '08' ) );
alert( parseInt( '08', 10 ) );


Цитата:

Сообщение от deivan
Для некоторых задач проекта мне нужно дату, вводимую пользователем, уменьшить на три часа

var x = new Date();
      
x.setHours( x.getHours() - 3 );
alert( x );

deivan 02.08.2012 13:30

Действительно парсило по-своему, благодарю за совет!!!


Часовой пояс GMT +3, время: 16:30.