2012-01-04 5 views
1

私はこのフォーマットに日付を持っています月の値が何であってもdd/m/yyyy(月が10未満の場合) 。javascript dd/m/yyyy to dd/mm/yyyy

ありがとうございました。

+0

だから、基本的に0パッドの月の値ですか? –

+0

月に先行するゼロを1桁だけ追加したいという意味ですか? – jfriend00

答えて

2

はシンプルなソリューションです:もちろん

s = s.replace(/\/(\d)\//, '/0$1/'); 

、あなたはd/m/yyyy、またはd/mm/yyyyをチェックすることをお勧めします。

別のオプションは、その場合には、次のとおりです。

s = s.replace(/\b\d\b/g, '0$&'); 

再度、日付と仮定すると、文字列全体、そしてその中に部分的ではありません。パターンは読む:

  • \b\d\b - グローバル我々は2つの試合を有することができるよう、交換してください - 単語全体(英数字以外の文字または文字列のエッジによってラップ)
  • /gある数字を。
  • 0$& - マッチ全体に0を加えます。
+0

を探しています –

0
var month = "00"; 

if (month < 10) month = "0" + month; 
2
var date = "06/7/2011"; 

if(date.length == 9) { 
    date = date.substring(0,3)+"0"+date.substring(3); 
} 

alert(date); 

http://jsfiddle.net/sTf68/

これは明らかに非常に堅牢なソリューションではありません、しかし、それはあなたが固定された必要なだけの小さな問題だ場合、それは、この目的のために動作します。より一般的な日付フォーマットについては、datejsDate FormatのようにJavaScriptライブラリを使用することをお勧めします。

0
"12/9/2011".replace(/\/(\d\d?)\//, function(a, month) { 
    return "/" + (parseInt(month, 10) < 10 ? "0" + month : month) + "/"; 
}); 

http://jsfiddle.net/pjTGh/

+0

これはおそらく最も速い解決策です。私は/ \ d {1-2} \ /(1桁または2桁の後にスラッシュをつけて)を検索し、2桁の数字で置き換えます。 – Kosta

+0

ああ、扱うのにparseInt(number、10) 09正しく。 parseInt( "09")は0を返します – Kosta

+0

あなたは '\/\ d \ /'を検索することができます。'\ d {2}'にマッチしてその長さをチェックする点がありません。入力が正しい形式(22/01/2012 - > 22/001/2012)の場合、実際には間違っています – Kobi

0

JavaScipt日付APIは、痛みのビットです。私はdd、m、yyyを得るために.plit( '/')を使います。文字列として。次に、parseInteger(x、10)を使用してNumbersを作成します(10月は09が無効な8進数ではなく10進数の9として扱われるために必要です)。その後、そこから新しいパディングされたStringを作成することができます。 (または、新しいDate() - ただし、曜日と月は0ベースです!)。

DateをStringとして書式設定する場合は、パディングを自分で行う必要があります。例えば、あなたは、文字列は、あなたが投稿した正確な形式である知っていれば、ここでFormatting Javascript string to have 03 not 3?

1

これを試してみてください:

function normalizeDate(input) { 
    var parts = input.split('/'); 
    return (parts[0] < 10 ? '0' : '') 
    + parseInt(parts[0]) + '/' 
    + (parts[1] < 10 ? '0' : '') 
    + parseInt(parts[1]) + '/' 
    + parseInt(parts[2]); 
} 

alert(normalizeDate('2/3/2000')); //alerts "02/03/2000" 
alert(normalizeDate('12/11/2000')); //alerts "12/11/2000" 
alert(normalizeDate('12/7/2000')); //alerts "12/07/2000" 

を使用すると、この関数は、最初の2つの数字にだけでなく、第二の0を追加します見ることができるように。