2017-05-08 81 views
0

我有一個日期,我使用時刻顯示如下: 03/04/2105。我想再次使用時刻將其轉換爲iso。因此,我正在寫:矩形格式返回無效日期

const IsoDateTo = moment(dateTo).format('YYYY-MM-DD[T]HH:mm:ss'); 

的日期爲23/04/2105,但IsoDateTo被返回是這樣的:當我輸入一個日期大於00另外: 2105-03-04T00:00比12回報我無效的日期。這是爲什麼發生?

+1

那麼...什麼是「dateTo」。它是一個字符串還是一個時刻對象? –

+0

當我console.log的類型dateTo它顯示一個字符串。但要將它轉換爲這個字符串我使用時刻 – user7334203

+0

* What * string?什麼是「大於9的日期」? – str

回答

6

要確保你正確地分析你要傳遞的預期字符串格式一起到momentjs字符串(像這樣):

const IsoDateTo = moment(dateTo,'DD/MM/YYYY').format('YYYY-MM-DD[T]HH:mm:ss'); 
2

你不能只是拋出任何日期格式轉換成它,並期待它會奇蹟般地識別格式。如果你沒有指定和其他格式,Moment.js依賴JavaScript的日期分析功能。根據MDN specification of Date,「dateString」可以是符合IETF標準的RFC 2822時間戳或ISO8601的一個版本。你的日期字符串既不是。

通常最好使用日期格式,如YYYY-MM-DD

const IsoDateTo = moment('2105-03-04').format('YYYY-MM-DD[T]HH:mm:ss');