2017-03-26 73 views
-3

我需要以此格式2017/03/26以这种格式转换数据,格式为2017-03-26,从表单ID中选取数据开始。JavaScript中的转换日期

我试过这样,但我现在失去了..任何帮助?

var dataform = "26/03/2017"; 
 
var dataora = new Date(dataform); 
 

 

 
var G = dataora.getDate(dataform); 
 
var M = (dataora.getMonth(dataform) + 1); 
 

 

 
if (G < 10) 
 
{ 
 
\t var mm = "0" + dataora.getDate(dataform); 
 
} 
 
else 
 
{ 
 
\t var mm = dataora.getDate(dataform); 
 
} 
 

 
if (M < 10) 
 
{ 
 
\t var gg = "0" + (dataora.getMonth(dataform) + 1); 
 
} 
 
else 
 
{ 
 
\t var gg = (dataora.getMonth(dataform) + 1); 
 
} 
 

 
var aa = dataora.getFullYear(dataform); 
 

 
var data = aa + "-" + mm + "-" + gg; 
 

 
console.log(data); 
 
console.log("Year "+aa); 
 
console.log("Month "+mm); 
 
console.log("Day "+gg);

输出是:

2019-03-02 

Year 2019 
Month 03 
Day 02 

我在哪里错了?

+3

我建议使用[momentjs](https://momentjs.com)来转换数据格式。 –

+1

你正在大规模地推翻这一点。 'var input =“2017/3/26”.split('/'); var output = input [2] +' - '+ input [1] +' - '+ input [0];' – JJJ

回答

0

我在哪里错了?

不要使用Date构造函数(或Date.parse)来解析字符串,因为它很大程度上依赖于实现并且因主机而异。请参阅Why does Date.parse give incorrect results?

每萨加尔V的答案,只是重新格式化字符串。

1
  • split函数与/分开。
  • 使用reverse函数反转它
  • 然后使用-使用join函数加入它。

就是这样。

var date="26/03/2017"; 
 
date=date.split("/").reverse().join("-"); 
 
console.log(date);

+0

太棒了,它的工作!谢谢 –