質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

2502閲覧

グーグルフォームのタイムスタンプを ●月●日(曜日)形式に変換したい

yoichiyy

総合スコア55

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2021/07/03 07:48

グーグルフォームのタイムスタンプを ●月●日(曜日)形式に変換したい

発生している問題・エラーメッセージ

TypeError: date.getMonth is not a function と出てしまいます。

該当のソースコード

google

1 2var formatDate = function(date) { 3  var format = 'MM月DD日(WW)'; 4 var weekday = ["日", "月", "火", "水", "木", "金", "土"]; 5  format = format.replace(/MM/g, ('0' + (date.getMonth() +1)).slice(-2)); 6  format = format.replace(/DD/g, ('0' + date.getDate()).slice(-2)); 7 format = format.replace(/WW/g, weekday[date.getDay()]); 8  return format; 9};

コード全体は、下記の通りです。
最終行で、formatDateを実行しています。
formatDateには、dateとして、グーグルフォームに入力された「タイムスタンプ」を渡しています。
Logger.log()を確認し、問題なく(?)取得されていることは確認できました。

Thu Jun 24 2021 12:22:00 GMT+0000 (GMT)

//管理シートの情報を取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet_cnt = ss.getNumSheets(); //アクティブなスプレッドシートのシート数を取得 Logger.log(sheet_cnt); //各シート巡回処理 for(var i = sheet_cnt; i >= 5; i--){ //注意:5番目のシート("1")まで、カウントダウン。 //該当シートを取得 var shori_sheet_name = ss.getSheets()[i-1].getName(); var shori_sheet = ss.getSheets()[i-1]; Logger.log(shori_sheet_name); Logger.log(shori_sheet); const sheetData = shori_sheet.getRange('A2:A300').getValues();  Logger.log(sheetData); //最終行→処理ターゲット行取得 const MValues = shori_sheet.getRange('M:M').getValues();//クレド名  var Last_MRow = MValues.filter(String).length+1;//最終行+1=今回の処理業  Logger.log(Last_MRow) // シートの各行ごとにデータを取り出す sheetData.forEach(function(value, index) { // A列に":"が入っていれば、未処理と判定。 Logger.log("Value0:"+value[0]); if (value.toString().match(/:/)) { var hiduke = formatDate(shori_sheet.getRange(2+index,1));

試したこと

この値は、date型なので、何が問題なのか? ・・・というところで行き詰まっています。

どうすれば、
Thu Jun 24 2021 12:22:00 GMT+0000 (GMT) ・・・を、
6月24日(木)・・・に変換するコードになりますでしょうか。

アドバイスを、どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

問題はformatDate(shori_sheet.getRange(2+index,1))のところですよね?
確認はしていませんが、formatDate(new Date(shori_sheet.getRange(2+index,1))) としてみてはどうでしょう。

投稿2021/07/03 07:59

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoichiyy

2021/07/03 11:51

itagagaki様、どうもありがとうございました。お陰様で、解決しました! formatDate(new Date(shori_sheet.getRange(2+index,1).getValue())) 頂いた new Dateに加え、 最後に getValue()を付け加えることに気づきましたが、 とにかくも、期待通りの結果を得られました。 本当にどうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問