前提・実現したいこと
GASでScriptApp.newTriggerを使って15:30にトリガーを作りたいのですが、
現在の日付のトリガーを作ってしまいます。
何度も実行しているのですが、そのときの時刻から15:30までは1時間以上差がある状態なので、誤差は考えられません。
ご教授いただれば幸いです。
該当のソースコード
GAS
1function setTrigger(h,m,hanbaisuCnt) { 2 const date = new Date(); //現在日時のDateオブジェクトを作る 3 Logger.log("hの型は"+Object.prototype.toString.call(h)); 4 Logger.log("mの型は"+Object.prototype.toString.call(m)); 5 Logger.log("hは"+h); 6 Logger.log("mは"+m); 7 8 date.setHours(h); 9 date.setMinutes(m); 10 Logger.log("dateは"+date); 11 12 //★ここで作られるトリガーが現在時刻になります。★ 13 ScriptApp.newTrigger('setNotify1').timeBased().at(date).create(); 14 15//数字を直接書いた場合 16 const time = new Date(); 17 time.setHours(17); 18 time.setMinutes(0); 19 20//きちんと17:00のトリガーができます 21 ScriptApp.newTrigger('setNotify1'.toString()).timeBased().at(time).create(); 22 23}
試したこと
上にも書きましたが、数字を直接書いた場合は狙い通り17:00のトリガーができます。
また、ログには変数dateにきちんと変数hとmの値が入っているので、ScriptApp.newTrigger('setNotify1'.toString()).timeBased()の箇所で現在時刻に入れ替わっているのかもしれません。
ログ
16:21:57 お知らせ 実行開始
16:22:05 情報 hの型は[object Number]
16:22:05 情報 mの型は[object Number]
16:22:05 情報 hは15
16:22:05 情報 mは30
16:22:05 情報 dateはThu Jan 27 2022 15:30:05 GMT+0900 (Japan Standard Time)
回答2件
あなたの回答
tips
プレビュー