将mm/dd/yyyy转换为yyyy-mm-dd

将mm/dd/yyyy转换为yyyy-mm-dd

问题描述:

我需要将这样的日期,03/07/2016转换为2016-03-07等日期格式。将mm/dd/yyyy转换为yyyy-mm-dd

我该如何使用JavaScript或jQuery来做到这一点?

+0

仅供参考,jQuery *是* Javascript。这只是一个图书馆。 –

+2

如果你的输入是一个字符串,那么这对字符串方法来说是最简单的,而不是使用Date对象。你可以,例如,使用.slice()和串联,或者用正则表达式rerex()做一行。你有什么尝试? – nnnnnn

+0

如果您想使用复杂的逻辑处理日期,最好使用特殊库,例如'momentjs'。 –

假设你输入一个字符串,这是很容易使用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

使用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