2017-09-15 98 views
0

我們如何將112889(mmddyy)這個未格式化的日期轉換爲像11/28/89這樣的特定格式?如何將112889(mmddyy)轉換爲11/28/89或11/28/1989

console.log(new Date('112889')) 
// I got this: Sat Jan 01 112889 00:00:00 GMT+0800 

我已經在谷歌搜索任何地方關於此問題,但沒有找到具體答案。

參考搜索:

  1. https://forums.asp.net/t/1987249.aspx?How+can+i+convert+Date+1365715800000+format+to+MM+dd+yyyy
  2. Convert number into date using javascript

林還想着momentjs格式,但找不到這方面有任何文檔還是我只錯過了

+1

看看moment.js庫。 https://momentjs.com/docs/。時刻(「112889」,「MMDDYY」); –

+0

當然! @SubirKumarSao –

回答

2

使用momentjs庫可以指定輸入字符串的格式,即MMDDYY。

var d = new moment("112889", "MMDDYY"); 
 
document.getElementById('dated').innerText = d.format('MM/DD/YYYY');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script> 
 
<div id="dated"></div>

1

請看看moment.js庫。試試這個代碼

var date = moment('112889',"MMDDYY").format('MM/DD/YY'); 
    console.log(data); 
0

如果你不想使用圖書館,如果你知道你的輸入總是會mmddyy格式,你可以做這樣的事情:

var str = '112889'; 
var arr = str.match(/.{1,2}/g); // Splits string into 2 character chunks 
var d = new Date(arr[2],arr[0],arr[1]); 
console.log(d); 

但是這是不正確的,因爲如果你給一個像112804這樣的字符串,JS(或者其他任何人)不會知道它是1904年還是2004年,它會接受1904年。在這種情況下,你應該明確指定:

var str = '112896'; 
var arr = str.match(/.{1,2}/g); // Splits string into 2 character chunks 
var d = new Date(arr[2], arr[0], arr[1]); // new Date(yy,mm,dd); 
var presentYear = Number((new Date()).getFullYear()); 
var dateYear = Number(d.getFullYear()); 
if (presentYear >= dateYear + 100) { // If adding 100 to year makes it greater than present year, then move to 2000s 
    d = new Date('20' + arr[2], arr[0], arr[1]); 
} 
console.log(d); 
相關問題