2013-09-10 3 views
0

я пытался противостоять дереву JavaScript объекты Date с этим синтаксисомJavascript новая дата (дата) вернуться неправильный день

var from = new Date(1900,0,0); 
var to = new Date(); 
var dataTicket = new Date(dataString); 

    if (dataTicket > from && dataTicket < to) { 
    alert("OK"); 
    } 

, но я не могу получить эту работу, потому что dataTicket продолжают давать мне неправильный день!

, когда я проверить в консоли у меня есть эти значения в отчете, если:

dataString = "Вт сен 10 2013 22:44:07 GMT 0200 (ора LEGALE Europa Occidentale)"

от = "вс 31 декабрь 1899 00:00:00 GMT + 0100 (ор Solare Europa Occidentale)"

к = "вт 10 сентября 2013 23:32:44 GMT + 0200 (ор LEGALE Europa Occidentale)"

и вот странная вещь:

dataTicket = "Ср 11 сентября 2013 00:44:07 GMT + 0200 (ора LEGALE Europa Occidentale)"

я могу получить его работу, потому что значение dataTicket это один день после того, как это уступка, любая подсказка по этому поводу?

+0

Месяцы начинаются с '0', дни начинаются с '1' –

+0

тогда, если я установить месяц 10 я буду получать в сентябре вместо октября, правильно? но здесь я получаю 11-й день при настройке 10: \ – CLucera

ответ

0

Ваш dateString имеет разбитую часть zone. Для RFC2822 zone должен иметь + или -, но ваш нет, а затем он интерпретируется как UTC (+0000); на самом деле время 00:44:27 вместо 22:44:27.

dataString = "Tue Sep 10 2013 22:44:07 GMT+0200 (ora legale Europa occidentale)" 

Это dataString будет работать, как и ожидалось (обратите внимание на + знак)

+0

Это действительно странно, dataString создается с новыми Data(), почему я теряю знак +? : \ я собираюсь проверить это – CLucera

+0

нормально, мне нужно закодировать объект даты, когда я отправил его в сообщение ajax :) – CLucera

Смежные вопросы