546

dd/mm/yyyy の形式で 10 日前の日付を計算するスクリプトを作成しました。

var MyDate = new Date();
var MyDateString = new Date();
MyDate.setDate(MyDate.getDate()+10);
MyDateString = MyDate.getDate() + '/' + (MyDate.getMonth()+1) + '/' + MyDate.getFullYear();

これらのルールをスクリプトに追加することで、日と月のコンポーネントの先頭にゼロを付けて日付を表示する必要があります。私はそれを機能させることができないようです。

if (MyDate.getMonth < 10)getMonth = '0' + getMonth;

if (MyDate.getDate <10)get.Date = '0' + getDate;

これらをスクリプトに挿入する場所を誰かが教えてくれたら、本当に感謝しています。

4

30 に答える 30

1548

これを試してください:http://jsfiddle.net/xA5B7/

var MyDate = new Date();
var MyDateString;

MyDate.setDate(MyDate.getDate() + 20);

MyDateString = ('0' + MyDate.getDate()).slice(-2) + '/'
             + ('0' + (MyDate.getMonth()+1)).slice(-2) + '/'
             + MyDate.getFullYear();

編集:

説明のために、文字列.slice(-2)最後の2 文字を示します。

したがって、何があっても"0"、日または月に追加して、最後の 2 つを求めることができます。これらは常に必要な 2 つだからです。

したがって、 がMyDate.getMonth()返される場合は次の9ようになります。

("0" + "9") // Giving us "09"

これを追加.slice(-2)すると、次の最後の 2 文字が得られます。

("0" + "9").slice(-2)
"09"

しかし、をMyDate.getMonth()返す場合は10次のようになります。

("0" + "10") // Giving us "010"

したがって、追加.slice(-2)すると最後の 2 文字が得られます。または、

("0" + "10").slice(-2)
"10"
于 2010-08-31T00:39:18.177 に答える
123

以下は、Javascript の Number プロトタイプを拡張することなく、カスタムの「パッド」関数を使用した Mozilla Developer NetworkのDate オブジェクト ドキュメントの例です。彼らが例として与える便利な機能は

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

以下は、コンテキストで使用されているものです。

/* use a function for the exact format desired... */
function ISODateString(d){
    function pad(n){return n<10 ? '0'+n : n}
    return d.getUTCFullYear()+'-'
    + pad(d.getUTCMonth()+1)+'-'
    + pad(d.getUTCDate())+'T'
    + pad(d.getUTCHours())+':'
    + pad(d.getUTCMinutes())+':'
    + pad(d.getUTCSeconds())+'Z'
}

var d = new Date();
console.log(ISODateString(d)); // prints something like 2009-09-28T19:03:12Z
于 2012-09-23T06:47:40.527 に答える
14

これを行う最も短い方法を見つけました:

 MyDateString.replace(/(^|\D)(\d)(?!\d)/g, '$10$2');

すべての孤立した1桁に先行ゼロを追加します

于 2017-09-05T09:14:50.950 に答える
12
Number.prototype.padZero= function(len){
 var s= String(this), c= '0';
 len= len || 2;
 while(s.length < len) s= c + s;
 return s;
}

//使用中で:

(function(){
 var myDate= new Date(), myDateString;
 myDate.setDate(myDate.getDate()+10);

 myDateString= [myDate.getDate().padZero(),
 (myDate.getMonth()+1).padZero(),
 myDate.getFullYear()].join('/');

 alert(myDateString);
})()

/*  value: (String)
09/09/2010
*/
于 2010-08-31T02:17:09.007 に答える
8
var MyDate = new Date();
var MyDateString = '';
MyDate.setDate(MyDate.getDate());
var tempoMonth = (MyDate.getMonth()+1);
var tempoDate = (MyDate.getDate());
if (tempoMonth < 10) tempoMonth = '0' + tempoMonth;
if (tempoDate < 10) tempoDate = '0' + tempoDate;
MyDateString = tempoDate + '/' + tempoMonth + '/' + MyDate.getFullYear();
于 2012-07-15T08:03:00.097 に答える
7

sliceJavaScriptを使用して、この問題を解決する別の方法があります。

var d = new Date();
var datestring = d.getFullYear() + "-" + ("0"+(d.getMonth()+1)).slice(-2) +"-"+("0" + d.getDate()).slice(-2);

datestring期待どおりの形式の返品日: 2019-09-01

別のアプローチは、dateformatライブラリを使用しています: https://github.com/felixge/node-dateformat

于 2019-09-01T18:03:53.697 に答える
6

三項演算子を使用して、「if」ステートメントのように日付をフォーマットできます。

例えば:

var MyDate = new Date();
MyDate.setDate(MyDate.getDate()+10);
var MyDateString = (MyDate.getDate() < 10 ? '0' + MyDate.getDate() : MyDate.getDate()) + '/' + ((d.getMonth()+1) < 10 ? '0' + (d.getMonth()+1) : (d.getMonth()+1)) + '/' + MyDate.getFullYear();

そう

(MyDate.getDate() < 10 ? '0' + MyDate.getDate() : MyDate.getDate())

getDate() が 10 未満の値を返した場合は「0」 + 日付を返し、10 より大きい場合は日付を返します (先頭に0)。その月も同じ。

編集: getMonth が 0 で始まることを忘れていたので、それを考慮して +1 を追加しました。もちろん、単に d.getMonth() < 9 : と言うこともできますが、+1 を使用すると理解しやすくなると思いました。

于 2014-03-13T21:24:46.593 に答える
4
function formatDate(jsDate){
  // add leading zeroes to jsDate when days or months are < 10.. 
  // i.e.
  //     formatDate(new Date("1/3/2013")); 
  // returns
  //    "01/03/2103"
  ////////////////////
  return (jsDate.getDate()<10?("0"+jsDate.getDate()):jsDate.getDate()) + "/" + 
      ((jsDate.getMonth()+1)<10?("0"+(jsDate.getMonth()+1)):(jsDate.getMonth()+1)) + "/" + 
      jsDate.getFullYear();
}
于 2013-03-02T22:00:02.770 に答える
1

私がすることは、次のような独自のカスタム Date ヘルパーを作成することです。

var DateHelper = {
    addDays : function(aDate, numberOfDays) {
        aDate.setDate(aDate.getDate() + numberOfDays); // Add numberOfDays
        return aDate;                                  // Return the date
    },
    format : function format(date) {
        return [
           ("0" + date.getDate()).slice(-2),           // Get day and pad it with zeroes
           ("0" + (date.getMonth()+1)).slice(-2),      // Get month and pad it with zeroes
           date.getFullYear()                          // Get full year
        ].join('/');                                   // Glue the pieces together
    }
}

// With this helper, you can now just use one line of readable code to :
// ---------------------------------------------------------------------
// 1. Get the current date
// 2. Add 20 days
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), 20));

この Fiddleも参照)

于 2016-03-09T14:39:32.470 に答える