2012-09-02 223 views
1

我有一個以字符串形式提供的日期,例如09/12/2012。將JavaScript字符串轉換爲整數

如果字符串是今天,我希望顯示「今日」,否則我希望顯示09/12/2012。

用我的方法如下所示的問題是,像09月被解析爲0,而不是9

什麼是做到這一點的最好方法是什麼?謝謝

var currentDate = new Date(); 
dateText='09/12/2012'; 
var a=dateText.split('/');// mdY 
$("#date").text(((parseInt(a[0])-1==currentDate.getMonth()&&parseInt(a[1])==currentDate.getDate()&&parseInt(a[2])==currentDate.getFullYear())?'Today':dateText)); 
+0

你會發現[這裏](http://stackoverflow.com/questions/7142123/converting-an-array-of-string-into-integer-using- jquery)如何使用JavaScript和jQuery將字符串轉換爲Int – VBH

回答

5
傳遞

一個第二個參數parseInt() - 具體而言,10

$("#date").text(((parseInt(a[0], 10)-1==currentDate.getMonth()&&parseInt(a[1], 10)==currentDate.getDate()&&parseInt(a[2], 10)==currentDate.getFullYear())?'Today':dateText)); 

第二個參數告訴函數使用用於解釋表達的基礎。如果你沒有明確地通過它,它會使用舊的C約定,這將導致以零開始的數字被解釋爲基8常量。這會導致0809出現問題。

+0

謝謝Pointy。總體感覺。 – user1032531

2

這裏有一個小提琴:http://jsfiddle.net/pfHA7/1/

function today() 
{ 
    var today = new Date(); 
    var dd = today.getDate(); 
    var mm = today.getMonth()+1; //January is 0! 

    var yyyy = today.getFullYear(); 
    if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} var today = mm+'/'+dd+'/'+yyyy; 
    return today; 
} 

var dateText = '09/12/2012'; 

$("#date").text(today() == dateText ? 'Today' : dateText);​