3

の形式の日付を含むオブジェクトがありますYYYY-MM-DD

さまざまな年、月、日の整数を抽出しているので、それらを別のに送信できますAPI

これが私の方法の例です。substr()

デモ: http: //jsfiddle.net/AppSynergy/tELsw/

OK、動作します。大野!-そうではありません-完全ではありません..4月8日の「08」が代わりに0になると決定する3番目の要素の何が問題になっていますか?

「08」を「03」などの別の整数に変更すれば問題ありません。しかし、「08」は問題を引き起こします。

これは私を夢中にさせています-何が問題なのですか?

あなたがそれを見つけることができれば、あなたはアイスクリームに値する。

4

3 に答える 3

7

08デフォルトでは、(無効な)8進リテラルと見なされます。

このトークンを10進数(基数10)と見なすには、parseInt()の呼び出しで基数を明示的に指定する必要があります。

$("#debug").append(parseInt(date.substr(5, 2), 10) + " / ");
于 2012-06-25T09:37:48.630 に答える
3

上記は数値を8進表記に変換するためparseInt、基数/基数を使用する必要があります。100

parseInt(yourNum, 10);

そのため、parseIntベース番号を使用していない場合を除いて、使用するときは常にベースを指定する必要があり10ます。

于 2012-06-25T09:36:47.920 に答える
2

文字列が「0」で始まる場合、JavaScriptは基数が8(8進数)であると見なします。

文字列を10を底として解析するようにjavascriptに指示する必要があります。

$.each(testData, function(i, val) {
    // sort out the date format
    var date = val.trim();
    $('#debug').append(date+' ==><br />');
    $('#debug').append(parseInt(date.substr(0, 4), 10)+' / ');
    $('#debug').append(parseInt(date.substr(5, 2), 10)+' / ');
    $('#debug').append(parseInt(date.substr(8, 2), 10)+'<br /><br />');
});
于 2012-06-25T09:36:47.523 に答える