前提・実現したいこと
Google Formで予定を投稿してgasでHTMLにてGoogleカレンダーのURLを作成して表示するウェブアプリケーションを
作成しています。
イメージ
Google Form->GAS->SpreadSheet->GAS->HTML->GoogleSite
発生している問題・エラーメッセージ
Google カレンダーの終わりの日付が1日早くなったり、ならなかったりします。
2019年12月28日から2019年12月31日までの日程を登録させたいとすると、
生成されたURLは
http://www.google.com/calendar/event?action=TEMPLATE&text=%E3%83%86%E3%82%B9%E3%83%88&details=%E3%81%82&location=%E3%81%82&dates=20191228/20191231
となります。しかし、カレンダーでは、
となってしまいます。
### 該当のソースコード function RegistURL(setNUM){ var spreadsheet = SpreadsheetApp.openById('13_nBGMSWwGZFismoFVYhIwfnUmaAnwEksMBKqfdiTkQ'); var sheet = spreadsheet.getSheetByName('シート1'); setNUM=setNUM+1; if(sheet.getRange(setNUM,4,1,1).getValue()==""){ return " "; } if(sheet.getRange(setNUM,5,1,1).getValue()==""){ return" "; } var dateS=sheet.getRange(setNUM,4,1,1).getValue(); var dateE=sheet.getRange(setNUM,5,1,1).getValue(); var DateS= new Date(dateS); var DateE=new Date(dateE); if(sheet.getRange(setNUM,8,1,1).getValue()=="終日"){ dateS=Utilities.formatDate(DateS,"JST","yyyyMMdd"); dateE=Utilities.formatDate(DateE,"JST","yyyyMMdd"); } else{ dateS=Utilities.formatDate(DateS,"JST","yyyyMMdd'T'HHmmss"); dateE=Utilities.formatDate(DateE,"JST","yyyyMMdd'T'HHmmss"); } var text=sheet.getRange(setNUM,1,1,1).getValue(); var location=sheet.getRange(setNUM,2,1,1).getValue(); var details=sheet.getRange(setNUM,3,1,1).getValue(); if(location==""){ location=" "; } if(details==""){ details="詳細情報はありません"; } var html= 'http://www.google.com/calendar/event?' + 'action=' + 'TEMPLATE' + '&text=' + encodeURIComponent(text) + '&details=' + encodeURIComponent(details) + '&location='+ encodeURIComponent(location) + '&dates=' + dateS + '/' + dateE; return html; } //ソースコード //Google Apps Script
試したこと
ダメ元でGMTでやって見ましたが、日付が開始・終了共にスライドして前にもどるだけでした。
全て1日戻るのなら+1して解決なのですが、そうでもないようです。
Googleは新しいサイト。
iPhoneで検証した結果も同じ。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。