2014-02-08 49 views
0

我在寫一個包含日期選擇器的應用程序。當您點擊日期選擇器中的日期時,日期顯示在輸入字段(type =「text」)中。例如,如果您選擇未來的一天,它表明:jQuery:如何將輸入內容轉換爲日期對象?

2014年2月9日

所以你可以猜到格式爲DD/MM/YYYY。

對於應用程序,我需要計算所選日期和當前日期之間的天數。我已經知道如何用jQuery生成當前日期。但我不知道如何計算天數的時差。任何人都可以幫忙用代碼?

回答

0

H I,傳統的方法會是這個樣子。

從點符號格式的日期值開始,我們可以轉換爲dd/mm/yyyy格式。

鑑於日期字符串需要重新排序爲MM/DD/YYYY

var inputval = "09.02.2014".split("."); 
var dateval = new Date(inputval[1]+"/"+inputval[0]+"/"+inputval[2]); 


/* with our Date object we can now compare */ 
var currDate = new Date(); 
var diffDays = Math.round(Math.abs((dateval.getTime() - currDate.getTime())/(24*60*60*1000))); 

var diffdays =快速的日期更新爲註釋,比較代碼片段取自:

How to calculate the number of days between two dates using JavaScript?

值得提及將所有這些添加到可重用功能中。

function daysDifferenceFromToday(datestr) { 
var inputval = datestr.split("."); 
var dateval = new Date(inputval[1]+"/"+inputval[0]+"/"+inputval[2]); 
var currDate = new Date(); 
return Math.round(Math.abs((dateval.getTime() - currDate.getTime())/(24*60*60*1000))); 

} 

/* usages */ 
alert(daysDifferenceFromToday("09.02.2014")); 

if(daysDifferenceFromToday("05.02.2014")>2) { 
    ... 
} 
+0

謝謝你,但是你在dateval中的操作提供了錯誤的日期:它提供了9月2日......但相反它需要提供2月9日......我該如何解決這個問題? –

+0

噢好點,會更新答案... –

+0

只是再次更新,因爲我錯誤地從引用鏈接複製了'oneday'變量,現在更新以顯示在可重複使用的實用程序 –

1

減去兩個日期將返回在毫秒跨越然後將其轉換爲天:

function daydiff(first, second) { 
    return (second-first)/(1000*60*60*24) 
} 
alert(daydiff(date1, date2));