2017-03-26 110 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

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