2017-12-13 11 views
0

私の要求の一部の日付フィールドに過去または将来の日付をフォーマットして割り当てる機能を記述しようとしています。ただし、assignedDateは関数ではないというエラーが表示されます。Postman Pre-req Date Assignの機能

function changeDate(numberOfDays) { 
var assignedDate = new Date().toISOString(); 
assignedDate.setDate(assignedDate.getDate() - numberOfDays); 
assignedDate.substr(0, assignedDate.length-5); 
return assignedDate; } 

次に私は最初のときと同じように変更します。

function changeDate(numberOfDays) { 
var assignedDate = new Date().toISOString(); 
var assignedDate.setDate(assignedDate.getDate() - numberOfDays); 
var assignedDate.substr(0, assignedDate.length-5); 
return assignedDate; } 

次に、「assignedDateが既に定義されています」という警告が表示されます。

私はまた初心者の一種です。あなたの解決策を教えてください。

ありがとうございました。

+0

* assignedDate *それは*のsetdate *メソッドを持っていない、文字列です。 – RobG

答えて

0

聞こえたら、それぞれの日付までの日数を減算/追加しようとしています。

あなたは直接

var d = new Date(); 
d.setDate(d.getDate()-5); 

参照のように引くことができます。 Subtract days from a date in JavaScript

-1

あなたはinteralライブラリmomentを使用する必要があります。

インポートは、次のように行われます。

var moment = require('moment') 

瞬間は非常に使いやすく、読みやすいAPIを提供します。あなたがここにポストマンでテストスクリプトで複数のサポートLIBSを検索することができます

var fiveDaysAgo = moment().subtract(5, 'days'); 

Postman PM API Reference

瞬間JSのドキュメントはここで見つけることができます: Moment JS Docs

+0

これは実際には悪い考えではありません...瞬間は非常に強力で、彼らはあなたのために多くの重い持ち上げを行います。サポートされているライブラリであるという事実は、その有用性を非常に高く説明する必要があります。 編集:私は誤って下向きの矢印を押して、それを変更することはできません。私は、このソリューションがOPのプレーン・ジャバスクリプトのアプローチから遠ざかっていることを知っていますが、Postmanがサポートしているので、これは受け入れられる答え/解決策になるはずです。 –

+1

@EdMeachamに感謝します。私は郵便配達のドキュメントで推奨されているので、瞬間J​​Sを使用して問題が表示されません。チームでは、古いJS Dateクラスを使用していましたが、すぐに読み込みと保守が難しくなりました。 –

+1

確かに!私は多くのプロジェクト(クライアントとサーバー側)でモーメントを使用します。あなたの回答を編集すると、私は投票を修正することができます。 –

1

あなたがタイプで世話をする必要があります作成中:

var assignedDate = new Date().toISOString(); 

新しい日付はDateオブジェクトを作成しますが、toISOStringは文字列を返します。したがってassignedDateは文字列です。あなたが行うと:

assignedDate.setDate(assignedDate.getDate() - numberOfDays); 

文字列がSETDATE方法を持っていないとエラーになります。ちょうどしないでくださいtoISOString

assignedDateは現在の日付ですので、assignedDate.substrを使用することはできません。日付をフォーマットしたい場合は、Where can I find documentation on formatting a date in JavaScript?

を参照してください以下は、日付が異なることになるので、(文字列を取得していますが、何をしたいので、おそらく地元ではない、これはUTCの日付になることはないに注意することはtoISOStringを使用していますホストタイムゾーンオフセットの持続時間)。

function changeDate(numberOfDays) { 
 
    // Start with a Date 
 
    var assignedDate = new Date(); 
 
    // Adjust by the number of days 
 
    assignedDate.setDate(assignedDate.getDate() - numberOfDays); 
 
    // Get a formatted string (for UTC) 
 
    assignedDate = assignedDate.toISOString(); 
 
    // Return the string 
 
    return assignedDate.substr(0, assignedDate.length-5); 
 
} 
 

 
console.log(changeDate(5));

+0

私は彼のソリューションでSergej Lopatkinによって提案されたようにモーメントを使用することをお勧めします。 –

関連する問題