试图格式化date,总是得到无效的date

用户从jQuerydateselect器中select一个date,它具有以下格式:

DD.MM.YYYY 

当用户提交表单时,我想使用时刻将input的date转换为UTC。 但是,无论我做什么input,我得到一个Invalid Date错误。

例如input是

 30.03.2014 

我尝试格式化:

 console.log(moment(input).format('MM/DD/YY')); <-- prints Invalid Date 

我试着

 console.log(moment(input).utc().toDate()); <-- prints invalid date 

看来这一刻不能parsinginput,它可以parsingMM.DD.YY格式,但input必须有DD.MM.YYYY格式。

任何想法什么是错的?


运用

 moment(input, 'DD.MM.YYYY') 

给我:

 { from: '01.03.2014', to: '30.03.2014' } { from: Sat Mar 01 2014 00:00:00 GMT+0100 (CET), to: Tue Apr 01 2014 11:00:00 GMT+0200 (CEST) } 

考虑使用时刻提示支持:

 moment(input, 'DD.MM.YYYY') 

展示这种方法的小提琴可以在这里find:

http://jsfiddle.net/x4Xm3/

时刻将假设当地时间input,所以如果您在该时区之外工作,则可能需要将时区附加到input。 请参阅http://momentjs.com/docs上的文&#x6863; – 特别是parseZone()和“String + Format”部分。

在服务器端(节点)的情况下,由于服务器的时区,您可能会得到奇怪的结果。