1

2012 年 9 月 12 日のような文字列として提供される日付があります。

文字列が今日の場合は「今日」を表示し、それ以外の場合は 09/12/2012 を表示します。

以下に示す私のアプローチの問題は、09 のような月が 9 ではなく 0 に解析されることです。

これを行う最善の方法は何ですか?ありがとうございました

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));
4

2 に答える 2

5

2 番目の引数を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));

2 番目の引数は、式の解釈に使用する基数を関数に伝えます。これを明示的に渡さない場合、古い C 規則が使用されます。これにより、0 で始まる数値が基数 8 の定数として解釈されます。08これはとに問題を引き起こします09

于 2012-09-02T13:52:48.087 に答える
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 );​
于 2012-09-02T14:04:16.757 に答える