2014-11-28 2 views
0

Я написал код вроде this.but не дает должным образом put.in этот вывод кода должен быть -1.but он дает -31 y?не удается найти разницу дат с помощью getTime() y?

var start= new Date("04/09/2014"); 
var end= new Date("03/09/2014"); 
var d1=start.getTime(); 
var d2=end.getTime(); 
var difference = Math.round((d2-d1)/(1000*60*60*24)); 
if(difference<0){ 
document.getElementById("demo").innerHTML = difference ; 
} 
+8

Это значит быть Java или Javascript? Это разные языки. –

+0

defo javascript – musefan

ответ

1

JavaScript использует формат даты мм/дд/гггг, но вы вводите его в дд/мм/гггг.

Лучший подход, как прокомментировал @cloudfeet: «Плохая идея использовать форматы дат в любом месте. Придерживайтесь YYYY-MM-DD (ISO 8601)».

+3

Плохая идея использовать форматы дат в любом месте. Придерживайтесь 'YYYY-MM-DD' (ISO 8601) – cloudfeet

+0

@cloudfeet Абсолютно. – iamnotmaynard

+2

Причудливо добавив, что к ответу? :) – cloudfeet

0

Вы не использовали английский язык, даты в формате MM/DD/YYYY.

1

Чтобы избежать подобных проблем, лучше использовать синтаксис Date (год, месяц, день). Обратите внимание, что месяц основан на нулевом значении!

Таким образом, первые две линии становятся:

var start = new Date(2014, 8, 4); 
var end = new Date(2014, 8, 3); 
+3

Серьезно, нулевые месяцы - всего лишь худшая идея. > _ < – cloudfeet

+0

Правда, но, похоже, ISO 8601 поддерживается только IE9 +, поэтому я буду придерживаться этого формата на некоторое время. –

+0

Хорошая точка - если вы находитесь в среде браузера (не-современный), это то, что нужно посмотреть. – cloudfeet

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