2016-08-12 33 views
3

JS來轉換日期變量格式時刻JS把日期從一種格式轉換爲我用的那一刻其它

moment("23MAY68", 'DDMMMYY').format('YYYY-MM-DD'); 
moment("23MAY99", 'DDMMMYY').format('YYYY-MM-DD'); 

直到今年68,輸出2068從今年69,輸出的是1969年和不是2069.在moment.js中有沒有語法或參數,我可以提到它使用2069而不是1969?

http://plnkr.co/edit/ljXuskMsUAuJnpkqMPUn?p=preview

+1

注當你在這裏使用四位數字的時候,你可以在重新編碼的代碼中選擇一年。 – VincenzoC

+0

我現在將年份值更新爲2位數字 – firstpostcommenter

回答

4

解析來自一刻文檔:

默認情況下,兩位年以上68被認爲是在1900年和年68或以下被認爲是在2000年的。這可以通過替換moment.parseTwoDigitYear方法來改變。

所以,如果你在你的代碼替換moment.parseTwoDigitYear,你將有2069,而不是1969年

這裏工作的例子:你用兩位數

moment.parseTwoDigitYear = function(year){ 
 
    return parseInt(year, 10) + 2000; 
 
}; 
 

 
var s1 = moment("23MAY68", 'DDMMMYY').format('YYYY-MM-DD'); 
 
var s2 = moment("23MAY99", 'DDMMMYY').format('YYYY-MM-DD'); 
 

 
console.log(s1, s2);
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

+0

由於輸入中有四位數年份,因此這是不必要的。但是,當年份只有兩位數字時,這是一個很好的方法。 –

+0

我建議這個解決方案,因爲OP使用兩位數字的年份在鏈接的重擊器 – VincenzoC

+0

這是有道理的。感謝您的澄清 –

1

是的,有。只要使用正確的格式

moment("23MAY2099", 'DDMMMYYYY').format('YYYY-MM-DD'); 
相關問題