我有這種格式的日期dd/m/yyyy
(如果月份少於10個)我想轉換爲這一個dd/mm/yyyy
無論這個月的價值是多少。javascript dd/mm/yyyy javascript dd/mm/yyyy
謝謝。
我有這種格式的日期dd/m/yyyy
(如果月份少於10個)我想轉換爲這一個dd/mm/yyyy
無論這個月的價值是多少。javascript dd/mm/yyyy javascript dd/mm/yyyy
謝謝。
這裏有一個簡單的解決方案,如果你知道該字符串的確切格式你已經發布:
s = s.replace(/\/(\d)\//, '/0$1/');
當然,你可能要檢查d/m/yyyy
,或d/mm/yyyy
。
另一種選擇,在這種情況下,是:
s = s.replace(/\b\d\b/g, '0$&');
再次,假定該日期是整個字符串,並在它不是局部的。圖案讀取:
\b\d\b
- 的一個數字,是一個全字(由非字母數字字符或字符串的邊緣包裹)/g
- 全局替換,因爲我們可以具有兩個匹配。0$&
- 在整場比賽中添加一個零。,這實際上是錯誤的我在找 – 2012-01-04 16:42:09
var month = "00";
if (month < 10) month = "0" + month;
var date = "06/7/2011";
if(date.length == 9) {
date = date.substring(0,3)+"0"+date.substring(3);
}
alert(date);
這顯然不是一個非常強大的解決方案,但是,如果它只是一個小問題,你需要固定的,它會達到這個目的。對於更一般的日期格式,我建議您使用JavaScript庫來執行此操作,例如datejs或Date Format。
"12/9/2011".replace(/\/(\d\d?)\//, function(a, month) {
return "/" + (parseInt(month, 10) < 10 ? "0" + month : month) + "/";
});
的javascipt的日期API是一個有點疼痛。我會.split('/')得到dd,m和yyy。作爲字符串。然後使用parseInteger(x,10)將數字從它們中移出(需要使用10,以便將09月份視爲十進制9而不是無效八進制9)。然後你可以從那裏製作一個新的填充字符串。 (或者一個新的日期() - 但要注意,日期和月份是基於0的!)。
不幸的是,如果你想格式化日期作爲一個字符串,你需要自己做填充。見例如Formatting Javascript string to have 03 not 3?
試試這個:
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"
正如你可以看到這個功能將添加到0
前兩個數字,不僅第二。
那麼基本上0填充月份值? – 2012-01-04 16:27:46
你是不是隻是說如果只有一位數字,你想在月份中加一個前導零? – jfriend00 2012-01-04 16:28:31