我有兩個日期:更改日期格式
var first = '21-11-2012';
var second = '03-11-2012';
什麼是格式化像這樣的最佳方式:
var first = '2012-11-21';
var second = '2012-11-03';
我應該使用jQuery或乾脆JavaScript的?
我有兩個日期:更改日期格式
var first = '21-11-2012';
var second = '03-11-2012';
什麼是格式化像這樣的最佳方式:
var first = '2012-11-21';
var second = '2012-11-03';
我應該使用jQuery或乾脆JavaScript的?
你不需要jQuery的這一點,只需使用JavaScript像這樣:
function formatDate(d){
return d.split('-').reverse().join('-');
}
但如果你想要更多的可重用代碼考慮使用JavaScript Date Object。
first=first.split("-").reverse().join("-")
second=second.split("-").reverse().join("-")
沒有必要考慮jQuery的基本字符串處理:standard JS String methods綽綽有餘,這(我認爲)是爲什麼jQuery實際上沒有等效的方法。
正則表達式.replace()
或其他答案中的split/reverse/join概念都可以在一行中完成。我建議你逐漸熟悉在MDN頁我聯繫到的方法,但與此同時:
first = first.replace(/^(\d\d)-(\d\d)-(\d\d\d\d)$/,"$3-$2-$1");
(同爲second
- 如果需要封裝在一個函數)。
它使用正則表達式匹配日期的不同部分並將其反轉。
更新 - 按照要求,正則表達式的解釋我用:
^ // match beginning of string
(\d\d) // match two digits, and capture them for use
// in replacement expression as $1
- // match the literal hyphen character
(\d\d) // match two digits, and capture for use as $2
- // match the literal hyphen character
(\d\d\d\d) // match four digits, and capture for use as $3
$ // match end of string
因爲模式從開始到比賽結束串整串將被替換。如果在替換字符串中使用括號中的表達式的部分是「被捕獲的」並且可以被稱爲$ 1,$ 2等(按它們在表達式中出現的順序編號),所以"$3-$2-$1"
反轉這些被捕獲的片斷的順序並在它們之間放置連字符。 (如果輸入字符串不符合該格式,正則表達式將不匹配,並且不會進行替換。)
下面是一個回答此問題的問題。 [http://stackoverflow.com/questions/1056728/formatting-a-date-in-javascript][1] [1]:http://stackoverflow.com/questions/ 1056728/formatting -a-date-in-javascript – xivo