グーグルフォームのタイムスタンプを ●月●日(曜日)形式に変換したい
発生している問題・エラーメッセージ
TypeError: date.getMonth is not a function と出てしまいます。
該当のソースコード
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日(木)・・・に変換するコードになりますでしょうか。
アドバイスを、どうぞよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/03 11:51