странное поведение 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 подскажите пожалуйста причину такого поведения. |
проверьте parseInt на предмет
alert( parseInt( '08' ) ); alert( parseInt( '08', 10 ) ); Цитата:
var x = new Date(); x.setHours( x.getHours() - 3 ); alert( x ); |
Действительно парсило по-своему, благодарю за совет!!!
|
Часовой пояс GMT +3, время: 05:08. |