2012-05-02 3 views
0

Я разработал форму, которая содержит 3 поля FROM_DATE to_date No_of дней я хочу, чтобы вычислить разницу между FROM_DATE и to_date и значением разности будет показан в nu_of дней. itried этот код:как преобразовать разницу дат числа в JavaScript

<script> 
function difference() 
{ 
var d1=document.getElementById("P1_FROM_DATE"); 
var d2=document.getElementById("P1_TO_DATE"); 
var d3=document.getElementB`yId("P1_NO_DAYS"); 
if(d2.value < d1.value) 
{ 
alert("todate should not be less than from date"); 
d2.focus(); 
return false; 
} 
else 
{ 
d3.value=(d2.value - d1.value)+1; 
return true; 
} 
} 
</script> 

при выполнении этого кода и удовлетворяет условию, то на NO_OF_DAYS показывает мне NaN. Итак, каково решение, скажите мне.

С уважением Sabyasachi

+0

Вы когда-нибудь видели класс Date? –

+1

дубликат http://stackoverflow.com/questions/9601461/javascript-date-and-time-comparisson/9601628#9601628 –

ответ

0

Вы пытаетесь использовать современные методы, на основе полей, которые только знают о тексте. Вам нужно будет использовать класс Date для преобразования этих значений из текста и использовать эти методы для выполнения вашей арифметики даты.

Удачи вам!

0

Общая формула. Дата [x] -формат должна быть ISO (например, «yyyy/mm/dd»).

var diffDays = 
    Math.floor((new Date([date1]) - new Date[date2])/(1000*60*60*24)); 

BTW, я полагаю, document.getElementById("P1_FROM_DATE") является полем ввода. В этом случае используйте document.getElementById("P1_FROM_DATE").value, чтобы избежать разочарований.