2016-03-07 75 views
2

我需要將這樣的日期,03/07/2016轉換爲2016-03-07等日期格式。將mm/dd/yyyy轉換爲yyyy-mm-dd

我該如何使用JavaScript或jQuery來做到這一點?

+0

僅供參考,jQuery *是* Javascript。這只是一個圖書館。 –

+2

如果你的輸入是一個字符串,那麼這對字符串方法來說是最簡單的,而不是使用Date對象。你可以,例如,使用.slice()和串聯,或者用正則表達式rerex()做一行。你有什麼嘗試? – nnnnnn

+0

如果您想使用複雜的邏輯處理日期,最好使用特殊庫,例如'momentjs'。 –

回答

8

假設你輸入一個字符串,這是很容易使用regular expressionString .replace() method做:

var input = "03/07/2016"; 
var output = input.replace(/(\d\d)\/(\d\d)\/(\d{4})/, "$3-$1-$2"); 

其實,如果輸入格式有保證,你可以只換圍繞基礎件在他們的位置沒有打擾明確地匹配數字和正斜槓:

var output = input.replace(/(..).(..).(....)/, "$3-$1-$2"); 
+0

這個工作是否適用於所有月份和所有年份? –

+1

是的,假設兩位數的月份,兩位數的日期和四位數的年份。嘗試一下!請注意,這只是字符串操作來移動碎片。 – nnnnnn

+1

閏年呢?夏令時? 2000年? Y *** 3 *** K·哦,虛驚一場,沒有涉及的日期。繼續前進... – RobG

9

使用splitreversejoin功能:

var yourdate = date.split("/").reverse().join("-"); 

分割將在各部分作爲分隔符分割的時間,與/。 反轉功能將反轉陣列中由分割生成的所有部分。連接功能將所有部分連接在一起,但現在以-作爲分隔符。

編輯

閱讀有關的時間是不按順序的意見之後:通過交換分割函數創建的陣列的所述第二值和第三值,。

var dat = "03/07/2016" 
var yourdate = dat.split("/").reverse(); 
var tmp = yourdate[2]; 
yourdate[2] = yourdate[1]; 
yourdate[1] = tmp; 
yourdate = yourdate.join("-"); 
+1

這會將日期和月份放在錯誤的順序中。 [編輯:]對不起,這*做*工作的問題標題中指定的格式,但問題正文中的例子是不同的。我不知道OP想要什麼。 – nnnnnn

+0

@Dries VB此答案於2016-07-03再發表。我需要2016-03-07。 –

+0

我張貼了一個敏捷的評論,直到我意識到它出現故障... – dandavis

相關問題