4

そこで、数値を取り、現在の日付から月数を減算するメソッドを作成しました。

10 未満の月の前に「0」を追加する方法を見つけようとしています。また、10 未満の日の前に「0」を追加するにはどうすればよいですか。

現在、オブジェクトを返すとき (2012-6-9)。6 と 9 を返しますが、前に「0」はありません。誰かがその方法を教えてもらえますか?

これが私のコードです

lastNmonths = function(n) {
    var date = new Date();

    if (n <= 0)
        return [date.getFullYear(), date.getMonth() + 1 , date.getDate()].join('-');
    var years = Math.floor(n/12); 


   var months = n % 12;


    if (years > 0)
        date.setFullYear(date.getFullYear() - years);

    if (months > 0) {
        if (months >= date.getMonth()) {
            date.setFullYear(date.getFullYear()-1 );
            months = 12 - months; 
            date.setMonth(date.getMonth() + months );
        } else {
            date.setMonth(date.getMonth() - months);
        }
    }

}

    return [date.getFullYear(), date.getMonth() + 1, date.getDate()].join('-');
};
4

3 に答える 3

13

次を使用して、n<10の場合のテストを回避することもできます。

("0" + (yourDate.getMonth() + 1)).slice(-2)
于 2013-02-16T22:26:40.733 に答える
2

次のような小さな関数を書くことができます:

function pad(n) {return (n<10 ? '0'+n : n);}

それに月と日を渡します

return [date.getFullYear(),pad(date.getMonth() + 1), pad(date.getDate())].join('-');
于 2013-02-16T22:22:43.047 に答える
0

「0」を連結してみてください。

   month = date.getMonth() + 1 < 10 ? '0' + date.getMonth() + 1 : date.getMonth() + 1
   return [date.getFullYear(), month, date.getDate()].join('-');
于 2013-02-16T22:26:32.110 に答える