2016-08-25 7 views
0

私は、現在の日、週、または月に基づいてタスクを表示するタスク管理ウィジェットを作成しています。私はweeklyTaskArray、dailyTaskArray、monthlyTaskArrayに日付をプッシュし、それらを.lengthを使ってレンダリングしたいと思います。JSONオブジェクトの日付とangularjを使用した "5/17/16"形式の日付を比較するにはどうすればよいですか?

これは私が試したものですし、ステートメントの実行「であれば」しかしdailyQuoteArray/weeklyQuoteArrayなどにすべてのデータをプッシュ:

 $http({ 
     method: 'GET', 
     url: 'http://localhost:3000/api/quotes.json', 
     responseType: "json" 
    }).then(function(response) { 
     let quotes = response.data; 
     angular.copy(quotes, quoteArray) 

     quotes.forEach(function (element) { 
      let currentDate = element.expiration_date; 
      console.log(currentDate); 
      var moment = require('moment') 
      var todaysDate = moment("05/17/2016"); 
      var date2 = moment(currentDate) 
      var answer = moment(todaysDate).diff(date2, "days") 
      console.log("this is the answer", answer); 

      if (answer >= 2) { 
      dailyQuoteArray.push(answer) 
      } 
      if (answer <= 7) { 
      weeklyQuoteArray.push(answer) 
      console.log("weeklyquotear length", weeklyQuoteArray.length); 
      } 

     }) 
    }); 
+0

を作成するには、 'として、ISOの日付を返すために、JSONのエンドポイントを変更することができます "2016-08-24T18:47:17.000Zを"'? – styfle

答えて

1

あなたはjavascriptの日付オブジェクトに、あなたの表現を変換する必要があります。変換や比較などの日付操作にはmomentjsを使用できます。

var date = moment("05/17/2017", "DD/MM/YYYY")._d; 
+0

ありがとう@scokmen私はコードvar moment = require( 'moment') var todaysDate = moment() var date2 = moment()。add(5、 'days') var answer = moment(todaysDate).diff (date2、 "days") console.log( "これは答えです"、答え); – NiBu

+0

もう一度ありがとうございます。私はちょうどコードを更新しました。週、日、月に基づいて別々の配列にプッシュするのに多くの問題がある – NiBu

0

使用´date.parse()´ JavaScriptのDate

new Date("05/17/2017"); //Wed May 17 2017 00:00:00 
+0

悪い考え....... –

+0

@SalmanAあなたの素晴らしい知識を私たちに教えていただけますか? – inetphantom

+0

Date.parseのドキュメント、特に2番目の段落、および読んでいる部分を見てください。** ** dateString ** RFC2822またはISO 8601の日付を表す文字列です(他の形式も使用できますが、結果は予期しない)._ –

関連する問題