2016-12-05 59 views
0

moment.js以數字作爲日期。 例如,如果我輸入201,我會得到「01-01-0201 00:00:00」。如果我嘗試編輯,我想要顯示201。 我的方法是;關於moment.js

if (moment(data, 'DD-MM-YYYY HH:mm:SS').isValid()) { 
    console.log('data if in date format: ' + angular.toJson(data)); 
    return moment(data).format('MM-DD-YYYY HH:mm:SS'); 
} else { 
    console.log('data if not in date format: ' + angular.toJson(data)); 
    return data; 
} 
+0

幫我理解這個部分,「如果我想201會被顯示,如果我去編輯」。這是我從中瞭解的內容,你想要在有效的日期對象上格式化而不是數字格式?即201應該保留爲201,而不是轉換爲日期字符串? – EmptyCup

+0

意思是,雖然創建我有一個領域,我可以給像201或日期與時間的數字。當我再次編輯相同的內容時,它應該顯示出確切的值。 –

回答

2

貌似這個表達

moment(data, 'DD-MM-YYYY HH:mm:SS').isValid() 

應該返回false,如果數據不完整,但一會兒是默認非常寬容。你可以在構造函數中指定最後一個參數來啓用嚴格的解析:

moment('201', 'DD-MM-YYYY HH:mm:SS', true).isValid() //false 
moment('01-01-2016', 'DD-MM-YYYY HH:mm:SS', true).isValid() //false 
moment('01-01-2016 12:00:00', 'DD-MM-YYYY HH:mm:SS', true).isValid() //true 
+0

是的,「嚴格的解析」有所幫助。 @SphDev。 –

+0

@NarasinghaPadhi,歡迎來到堆棧溢出!如果這個或任何答案已解決您的問題,請點擊複選標記考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。您也可以在這裏找到一些有用的提示如何使用此資源:[如何在此處詢問問題 ?](http://stackoverflow.com/help/how-to-ask)和[關於]頁面 – idmitme