2011-02-25 74 views
0

我正在使用jquery的daterangepicker組件。當我將日期傳遞爲「2011年1月」時,jquery的Date.parse()函數給出了一些奇怪的輸出。下面是不同的用例的樣本輸出:JQuery Date.parse函數實現

代碼片段:

var dateStr = "Jan 2011"; 
var dt = Date.parse(dateStr); 
alert(dt.getDate() + "/" + dt.getMonth()); 

輸出:

dateStr = "Jan 2011" : output = 25/0 (todays date is 25 feb 2011) 
dateStr = "Feb 2011" : output = 1/1 
dateStr = "Dec 2011" : output = 1/11 

因此,對於其他月份是一月,日期設置爲每月的第一個日期,而只有對於日期設置爲當前日期。

任何想法可能是什麼原因呢?

+0

您可能會嘗試使用http://www.datejs.com/解析器。 – generalhenry 2011-02-25 08:46:53

+0

可能是因爲Jan已經通過了?嘗試設置你的機器時鐘到1月,然後看看輸出是什麼 – 2011-02-25 08:58:57

+0

將機器時鐘設置爲jan或jan 2011年1月之前的日期,但是當你調用Date.parse(「2010年1月」)時,它會再次失敗。在過去的一個月裏,它仍然應該給出「01-MM-yyyy」的輸出結果,同樣的結果只會在1月份失效。 – manasi 2011-02-25 09:24:51

回答

0

這不是標準Date.parse函數在你的例子中。
標準parse函數返回數字結果,而不是日期對象。
Javascript parse() Method

在您例如parse函數返回日期對象。
函數Date.parse在您的代碼中被重新定義。請檢查一下。

斯坦達特parse函數總是返回在一個月的第一天,你的情況

+0

請考慮用體面的一個替換w3schools參考。謝謝。 – 2014-08-05 08:16:31

0

function myFunction() { 
 
    var d = Date.parse("Jan 2011"); 
 
    document.getElementById("demo").innerHTML = d; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<p>Click the button to display milliseconds between a specified date and Jan 2011.</p> 
 

 
<button onclick="myFunction()">Try it</button> 
 

 
<p id="demo"></p> 
 

 
</body> 
 
</html>

的parse()方法解析日期字符串,並返回日期字符串和午夜之間的毫秒數2011年1月