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

Javascript 将mm/dd/yyyy转换为yyyy-mm-dd,javascript,jquery,date,Javascript,Jquery,Date,我需要将2016年7月3日这样的日期转换为2016年3月7日这样的日期格式 如何使用javascript或jquery执行此操作?使用、和函数: var yourdate = date.split("/").reverse().join("-"); 拆分将日期拆分为不同的部分,并以/作为分隔符。 reverse函数将反转分割生成的阵列中的所有零件。join函数将所有部分重新连接在一起,但现在使用-作为分隔符 编辑 在阅读关于日期无序的注释后:交换由split函数创建的数组的第二个和第三个值 v

我需要将2016年7月3日这样的日期转换为2016年3月7日这样的日期格式

如何使用javascript或jquery执行此操作?

使用、和函数:

var yourdate = date.split("/").reverse().join("-");
拆分将日期拆分为不同的部分,并以
/
作为分隔符。 reverse函数将反转分割生成的阵列中的所有零件。join函数将所有部分重新连接在一起,但现在使用
-
作为分隔符

编辑

在阅读关于日期无序的注释后:交换由split函数创建的数组的第二个和第三个值

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

假设您的输入是一个字符串,这很容易通过以下方法实现:

实际上,如果输入格式得到保证,您可以根据片段的位置交换片段,而无需费心显式匹配数字和正斜杠:

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

如果要避免使用、操作字符串或加载整个库,可以在一行中创建一个新的JavaScript
Date
对象,该对象具有要格式化的日期,并使用兼容的区域设置调用其
toLocaleDateString
方法,例如
fr CA

new Date('01/31/2020').toLocaleDateString('fr-CA') // "2020-01-31"
在所有现代浏览器中都支持



信用证:

请遵循以下方法。诀窍是使用unshift属性

function formatDate(__d){
    if(__d.indexOf('/')){
      var a = __d.split('/')
      var b = a.pop()
      a.unshift(b)
   }
  return a.join('-')
}

仅供参考,jQuery是Javascript。它只是一个库。如果您的输入是字符串,那么使用字符串方法比使用日期对象更容易。例如,您可以将.slice()与连接一起使用,或者在一行中使用regex.replace()进行连接。您尝试过什么?如果您想使用复杂的逻辑处理日期,最好使用特殊的库,如
momentjs
。复杂的逻辑,如将ABC转换为CAB?是的,最好加载KBs的代码…问题标题中的输出格式与问题正文中的示例不匹配。请把你的问题修正一下,无论哪一个是错的。那会把日期和月份放在错误的顺序上。[编辑:]抱歉,这适用于问题标题中指定的格式,但问题正文中的示例不同。我不知道OP想要哪个。@Dries VB此答案返回2016-07-03。我需要2016-03-07。是的,假设两位数的月份、两位数的日期和四位数的年份。试试看!请注意,这只是字符串操作来移动片段。闰年呢?夏时制?千年虫?y3k?哦,虚惊一场,没有日期。继续…@RobG-除了你的生日,它在任何日期都有效。
function formatDate(__d){
    if(__d.indexOf('/')){
      var a = __d.split('/')
      var b = a.pop()
      a.unshift(b)
   }
  return a.join('-')
}