お問い合わせ、セミナー受付等はGoogle Formが便利

ホームページのお問い合わせ、

セミナー受付に

「Google Form」を利用しています。

(色々試してみた結果、Google Formに戻ってきました)

Google Formを利用するとSpread sheetで管理できる、

GAS(Google Apps Script)を利用できるので便利です。

 

Google Formには自動返信機能がないため、

GASで実装しています。やり方は↓の記事で解説しています。

オンラインセミナーの受付はGoogle Form。GAS(Google Apps Script)を活用して自動返信する方法

 

自動返信メールの時刻が「Sat Dec 30 1899」に!

しかし最近(かなり気づくのが遅い)、

自動返信メールの時刻が変なことに気づきました。

「Sat Dec 30 1899」となっているのです!

これは、スプレッドシートの日時計算の起点が1899年12月30日になっているからのようです。

時刻自体は合っているので伝わらなくはないですがこれを見て

「ん!?」と受け取った方がいたら申し訳ない。

なんとか表示を直すことにしました。

 

時刻の表示を正しくするための手順

GAS上のTime Zoneを直したり、

formatDate関数を使ったり、

色々やってみたのですが

すごく簡単なやり方で解決しました。

 

それは、時刻の値を取得するときに

「getValue」関数を使うのではなく、「getDisplayValue」関数を使うということです。

 

  • getValue関数・・・データ型をそのまま引き継いで値を取得する。
  • getDisplayValue関数・・・表示されている形式のまま値を取得する。

 

という違いがあります。

つまり、下記のように12:00と入力された値は年とかつけず、そのまま「12:00」として取得してくれます。

スプレッドシートの項目を取得するコード(一部のみ記載)を、

 

変更前

//スプレッドシートの入力値
var value = range.getCell(row, i).getValue();

 

変更後:

//スプレッドシートの入力値
var value = range.getCell(row, i).getDisplayValue();

 

と直していただくだけで大丈夫です。

 

試しに自動返信メールを送ってみると、

きちんと時刻が表示されていました。

(GMTとかJapan Standard Timeとか要らない表示もなくなりました)

GASの時刻表示がうまくいかない!

という方は是非「getDisplayValue」関数、ご活用ください。

 

まとめ

GASで作ったGoogle Formの自動返信メールで時刻が「Sat Dec 30 1899」と表示されてしまう場合の対応策を

解説しました。

こういうことって解決策が見つかればすぐにできるのですが

それまでに時間がかかりますね・・(半日かかりました)

同じように困っている人の助けになればいいなと思ってます。

 

編集後記

金曜日は、出版社の方と雑誌執筆について打ち合わせ。

週末は、Wordpressのメンテナンスなどを。

PHPのバージョンが古かったり、プラグインの更新ができていなかったりと

(今日書いた記事の問題も発見)

メンテは定期的にやらなきゃ、とあらためて感じました。

 

最近のあたらしいこと

下北の宿予約

« »