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

时间:2016-03-07 23:20:43

标签: javascript jquery date

我需要将像这样的日期,2016年7月3日转换为日期格式,例如2016-03-07。

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

4 个答案:

答案 0 :(得分:10)

假设您的输入是字符串,使用regular expression String .replace() method {/ 3}}很容易做到这一点:

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");

答案 1 :(得分:9)

使用splitreversejoin功能:

var yourdate = date.split("/").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("-");

答案 2 :(得分:3)

如果您想避免使用regular expressions,操纵字符串或加载整个moment之类的库,则可以通过使用以下代码创建一个新的JavaScript Date对象来一行完成此操作:要格式化的日期,并使用兼容的语言环境(例如toLocaleDateString)调用其fr-CA方法。

new Date('01/31/2020').toLocaleDateString('fr-CA') // "2020-01-31"

所有现代浏览器都支持。


信用:https://masteringjs.io/tutorials/fundamentals/date_format

答案 3 :(得分:0)

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

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