2017-03-23 12 views
0

Appsスクリプトでは、複数の異なる機能で(昨日の)同じ日付形式を使用する必要があります。だから私は自分のカスタムを作ることにしましたmakedate()私はそれが必要なときに確実にこの日付を作成する機能。しかし、問題は私の日付の代わりにundefinedを返すということです。ここに私の現在の機能があります:Google Appsスクリプト:カスタム関数が期待値を返していません

function makeDate(){ 
    var myDate = new Date(); 
    var date = (myDate.getDate()-1) + "-" + (myDate.getMonth() + 1) + "-" + myDate.getFullYear(); 
    Logger.log(date); 
    return date 
} 

ログファイルには、私が望む形式で日付が作成されているのがわかります。しかし、戻り値をテストする別の関数を作成すると、ログファイルにはそれに続く日付がないMade date:が表示され、他の用途では値が未定義であることが示されます。私は間違って何をしていますか?

答えて

0

私は実際に考える変数のスコープとは何とかして問題を理解しました。私は、スクリプト内の関数がすべて接続されていることを認識せずに、プロジェクト内の別のスクリプトのコードをテストするためにこれを使用していました。すべての関数/グローバルのインスタンスが1つしかないことを確認したら、問題は解決しました。ダムの間違い、私は知っていますが、Google Apps Scriptsを習得している初心者の方は知っておきたいので、答えとして投稿する価値があると思いました。

+0

質問を返信するのではなく、自分の回答を投稿するとよいです。そして、同じ問題に対する答えを探している人たちに答えを出そうとするのは良いことです。しかし、タイトルが説明的でなければ、そして同じ人物が同じ検索語を使用して検索しない限り、関連する質問を見つけることは不可能ではないにしても、しばしば非常に困難です。私はしばしば、私が知っている投稿を見つけるのは非常に苦労し、そのテーマが何であるか知っています。元の質問にGoogleスプレッドシートタグを追加する必要があります。 –

+0

もちろん、Googleスプレッドシートを使用しているユーザーに役立つと思われる場合は、私は個人的にそうではありませんでしたが、それは心に留めておくのは良いことです。チップありがとう –

0

あなたの問題は、カスタム関数の戻り値は入力パラメータ以外に依存してはならないということです。あなたのケースでは何も持っていないので、最初の結果をキャッシュし、それを同じパラメータ(なし)で次のコールに使用します。

修正するには、日付をパラメータとして渡す必要があります。

関連する問題