2016-09-01 12 views
0

現在、私は最後に変更された日付を与えるSharePoint APIを呼び出すアプリケーションを持っており、その日付を現在の単語doc内のコンテンツコントロール内のタグ。現在、私はNew Date()メソッドを使って2つの日付を比較しようとしていますが、2つの異なる時刻があります。これらの日付時刻はいずれもUTCですが、フォーマットは異なります。異なるフォーマットのDateTimeを変換して比較する

私は、SharePointから取得していたDateTimeが、この形式になります。8/27/2016 5:40:09 PM

現在のコード:理想の

for (var x = 0; x < contentControls.items.length; x++) { 
         itemUrl = "https://*tenant*.sharepoint.com/sites/*site*/_api/web/Lists/GetByTitle('*list*')/items?select=Title,Title&$filter=Title eq '" + contentControls.items[x].title + "'"; 
         $.ajax({ 
          type: "GET", 
          async: false, 
          url: itemUrl, 
          headers: { 
           "Authorization": "Bearer " + sharepointToken, 
           "accept": "application/json;odata=verbose" 
          }, 
          success: function (data) { 

           var sharepointDateTime = data.d.results[0].Modified; 
           var contentControlDateTime = contentControls.items[0].tag; 

           var test1 = new Date(sharepointDateTime); 
           var test2 = new Date(contentControlDateTime); 

           if (test1 != test2) { 
            // custom code 
           }          
          }, 
          error: function (error) { 
           console.log("Fetching list from SharePoint failed."); 
          } 
         }) 
        } 

コンテンツコントロールタグに格納2016-08-27T17:40:09Z

のDateTime結果

私は条件文で2つの日付を比較できるようにしたいと思います。異なる場合は、私は自分の文の中で何かするつもりです。 非常に重要これはユーザーの現在の時間帯に依存することはできません。私は、コンテンツコントロールを刻印されたAPIを変更することによって、これを解決したアップデート

UTC時間を比較しています。私は時間のクランチに取り組んでいるので、これにはあまり関わっていません。私が見たのは、コンテンツコントロールタグにタイムゾーンが設定されておらず、リンゴとオレンジを比較していたということでした。しかし、私はこの質問を開いたままにして、クライアント側の解決策が見つかるかどうかを確認したいと考えています。

答えて

1

時刻がではなく、!=を使用して、2つの日付オブジェクトのオブジェクト参照を互いに比較しています。オブジェクトは同じ時点を表すことがありますが、条件は常に真です。

あなたがvalueOf()を使用して取得できる数値、その代わりに次の2つの日付のタイムスタンプを比較することができます:

test1.valueOf() != test2.valueOf() 

はまたそう、二日は任意のタイムゾーン情報が含まれていないことに注意してくださいそれはwill be interpreted in the local time zone of the environment the code is executed inです。予期しない結果につながる可能性があります。

look into Moment.jsは、JavaScriptの日付処理のための事実上の標準ライブラリであり、使用例としてmuch more consistent and intuitive APIを提供します。

+0

Hey Tim、.value()は私にエポックタイムスタンプを与えます。これも私と比較できます。私はコンテンツコントロールをスタンピングしているAPIを変更することでこれを解決しました。私は時間のクランチに取り組んでいるので、これにはあまり関わっていません。私がコンテンツコントロールタグを見たのは、タイムゾーンにスタンプされていなかったので、リンゴとオレンジを比較していました。しかし、私はこの質問を開いたままにして、クライアント側の解決策が見つかるかどうかを確認したいと考えています。ありがとうございました。 – EasyE

関連する問題