将JavaScript字符串转换为整数

时间:2012-09-02 13:48:42

标签: javascript

我有一个日期,以字符串形式提供,例如09/12/2012。

如果字符串是今天,我希望显示“今天”,否则我希望显示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));

2 个答案:

答案 0 :(得分: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出现问题。

答案 1 :(得分: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 );​