1

この日付形式の変換についてサポートが必要です。これが私がサーバーから受け取る日付文字列です。それはM/DD/YYYYorM/D/YYYYまたはMM/D/YYYYorMM/DD/YYYYです。

編集:申し訳ありませんが、私の悪い。上記の形式の後に、追加の時間文字列があるHH:MM:SS AMため、受け取る完全な文字列は次のようになります。M/D/YYYY HH:MM:SS AM

私の問題は、String.substring(x、y)を使用して日付、月、年を抽出することです。

これまでのところ、「/」の場所を特定することしかできませんでしたが、それを部分文字列メソッドで使用する方法をまだ考えています。

var separators = [];
for(var b = 0, c = String.length; b < c; b++){
    if(String[b] === '/'){
        separators.push(b);
    }
}

日付と月を動的に抽出してから、1桁の数字の前に「0」を埋め込む方法がわからないので、助けていただければ幸いです。前もって感謝します。

4

3 に答える 3

2
var dt = "10/6/2012 12:34:56 AM".split(' '); 
dt = dt[0].split('/'); 

// dt[0] => month
// dt[1] => day
// dt[2] => year

上記の形式のいずれかで動作します-またはまたはM/DD/YYYY- M/D/YYYY(そして部分文字列を使用するよりも簡単です)MM/D/YYYYMM/DD/YYYY

次に、月と日にパッドを追加するには、次のslice()ように使用します

dt[0] = ("0"+ dt[0]).slice(-2);
dt[1] = ("0"+ dt[1]).slice(-2);

埋め込みデータを取得するには、配列部分を再結合するだけです

dt = dt.join('/');

jsbinの例:http://jsbin.com/exodos/2/edit

于 2012-09-20T11:22:28.623 に答える
0
var date= '1/3/2012'//your date string
,dateArray = date.split("/");
for(var k =0; k < 2; k++){
 if((dateArray[k] + "").length ==1){
      dateArray[k] = "0"+dateArray[k];
 }
}
var newDate= dateArray.join("/");

jsfiddle

于 2012-09-20T11:25:54.577 に答える
0

正規表現はその仕事をすることができます。以下は、それがm / d/yまたはy/d / m /のような日付であるかどうかを気にせず、1桁の数字に先行ゼロを埋め込むだけです。整数でのみ機能し、小数秒では適切に動作しません。

function fixDate(d) {
  var re = /\d+/g;
  return d.replace(re, function(s) {
    return (s < 10? '0' : '') + +s;
  });
}

fixDate('2/3/2012 3:5:3 am'); // 02/03/2012 03:05:03 am
于 2012-09-20T11:59:53.887 に答える