我需要将像这样的日期,2016年7月3日转换为日期格式,例如2016-03-07。
如何使用javascript或jquery执行此操作?
答案 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)
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('-')
}