GoogleFormから入力された日付の表示形式変更

4,891 views
Skip to first unread message

Atsuo Mutoh

unread,
Jan 30, 2018, 7:57:57 PM1/30/18
to Google Apps API Japan
Googleフォームから入力した日付を、20180131のような8桁の文字列に変換したいと考えています。

例えば、Googleフォームの”開始日”の日付フィールドに入力されたデータを、8桁の文字列にして変数depDateStringsに入れようと、次のようなスクリプトを実行すると、
---
var depDate = e.namedValues["開始日"];
var depDateStrings = Utilities.formatDate(depDate, "Asia/Tokyo" , "yyyyMMdd");
---

変数depDateには"2018/01/30"のようなデータが代入されますが、"メソッド formatDate(object,string,string) が見つかりません。"のようなエラーが出てdepDateStringsには値が代入されません。

他にも、replace ("/", "") のようなこともやってみましたがいずれもうまくいきません。
よい方法があれば、教えていただけると助かります。

不慣れで、ピント外れの質問かもしれませんが、よろしくお願い致します。

ogawa tak

unread,
Jan 30, 2018, 8:14:36 PM1/30/18
to Google Apps API Japan
Utilities.formatDateの第1引数はdate型なので下記のようにすれば動くと思います。

---
var depDateStrings = Utilities.formatDate(new Date(depDate), "Asia/Tokyo" , "yyyyMMdd");
---


ちなみにreplaceの場合は下記のような正規表現で全ての/を空白に変換できます。
---
var depDateStrings = depDate.replace(/\//g,'');
---

うまくいかない場合は下記のようにして文字列として扱ってみてください。
---
var depDate = e.namedValues["開始日"] + '';
---

2018年1月31日水曜日 9時57分57秒 UTC+9 Atsuo Mutoh:

Atsuo Mutoh

unread,
Jan 30, 2018, 11:04:15 PM1/30/18
to Google Apps API Japan
アドバイスありがとうございます。

new Date(depDate) の記述で、思うように動作しました。
基本的な事かもしれませんが気がつきませんでした。
これからも、精進して参ります。

2018年1月31日水曜日 10時14分36秒 UTC+9 ogawa tak:
Reply all
Reply to author
Forward
0 new messages