2016-05-05 19 views
0
function getData(thing, thingDate) { 
    var fThingDate = moment(thingDate).format('MM/DD/YYYY'); 
    return getAPIData('/api/things?thing=' + thing + '&thingDate=' + fThingDate).then(function (results) { 
     return results.data; 
    }); 
} 

thingDate2016-04-30T00:00:00で与えるが、私はそれをフォーマットするとき、fThingDate1/1/2016となります。なぜそれは今年の第1に行くのですか?そしてどうやって止めるの?moment.jsの日付をフォーマットする(デバッガによる)2016年1月1日

+0

私のために働く:https://jsfiddle.net/h37cL4Lo/。変数を検査して、それがあなたの考えであることを確認します。 – dan08

+0

結果を再現できません。あなたはmoment.jsが年 "2016"しか見ないなら、その結果を得るでしょう。文字列を解析するときは、常に形式を渡す必要があります。 – RobG

答えて

0

datetimeがフォーマットの文字列である場合、momentjsに問題があるようです:2016-04-30T00:00:00。 IE 10とWindows Server 2012 Stdでこれを実行しました。

しかし、これはそれを解決するように見えた:

function getData(thing, thingDate) { 
    var fThingDate = moment(new Date(thingDate)).format('MM/DD/YYYY'); 
    return getAPIData('/api/things?thing=' + thing + '&thingDate=' + fThingDate).then(function (results) { 
     return results.data; 
    }); 
} 

注:IE上でそれを非難する前に、少数の人々が同様に過去に同じ問題に遭遇しているようです。

関連する問題