2013-03-11 22 views
0

我只是想要比較兩個日期的時間戳,但它不會將字符串轉換爲過時日期。我試過這段代碼:日期格式在IE7中不起作用

var a_date = new Date('2013-03-25'); 
var b_date = new Date('25-03-2013'); 
alert(a_date + '***' + b_date); 

我在Firefox和IE7上都試過了。日期a_date在Firefox中工作,但在IE7中不工作(它給出Invalid Date值),b_date在IE7上工作,但不在Firefox中(它給出NaN值)。任何只使用一種日期格式來同時運行的方法?

+2

'新的日期(2013 ,2,25)'適用於瀏覽器。 – 2013-03-11 06:51:16

+0

但我的文本框中的字符串是在這個甲酸'2013-03-25'我如何轉換'2013年3月25日'字符串爲'2013,3,25'合成? – 2013-03-11 06:52:56

+2

'var parts ='2013-03-25'.split(' - '); new Date(parseInt(parts [0],10),parseInt(parts [1],10) - 1,parseInt(parts [2],10));' – JJJ 2013-03-11 06:54:32

回答

0

其工作由我做這個代碼:

var a_date = document.getElementById('Date_From').value; 
var parts1 = a_date.split('-'); 
var b_date = document.getElementById('Date_To').value; 
var parts2 = b_date.split('-'); 

var a_date_1 = new Date(parseInt(parts1[0], 10), parseInt(parts1[1], 10) - 1, parseInt(parts1[2], 10)); 
var a_date_2 = new Date(parseInt(parts2[0], 10), parseInt(parts2[1], 10) - 1, parseInt(parts2[2], 10)); 
     var date1 = a_date_1.getTime(); 
     var date2 = a_date_2.getTime(); 

    if(date1 <= date2) { 
     return true; 
    } else { 
     return false; 
    }   

特別感謝@Salman A和@Juhana

0

這是definition of the Date object使用月份字段的值0-11。

我相信使用String的構造函數是依賴於系統的(更不用說區域設置/時區相關),因此您可能最好使用指定年/月/日作爲單獨參數的構造函數。

順便說一句,在Firefox,

new Date("04/02/2008"); 

爲我工作得很好 - 它會解釋斜槓,而不是連字符。我認爲這證明了我的觀點,即使用String來構造Date對象是有困難的。使用顯式值月/日/年,而不是:

new Date(2008, 3, 2); 
相關問題