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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2171閲覧

【自動返信メール】時間の表示がうまくできないです。。。

NaoyaNishihara

総合スコア16

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2016/10/23 07:23

時間がうまく表示されません。
プログラミング知識がないのでいろんなサイトをみてパーツを寄せ集めて作ってみました。
メールは届きます。

①時刻の表示ーーーー
出力(メール本文)に「9時0分」
というような感じで表示されるのですが、理想としては、
「09時00分」 or 「9時00分」
みたいな感じにしたいです。。。
ーーーーーーーーー

②入力と出力が違うーーーー
それから入力した時刻と出力される時刻とが違って困ってます。。。。
7時と入力してるに1時と出力されてしまいます。
ーーーーーーーーーーーー
イメージ説明

本買って勉強してネットでの検索も頑張ってるのですが勉強&検索が下手なのか全然解決できないです.....
助けてください...

function autoreply() { var title = "○○○○○○○○○○○○○○○○○○○○○"; var body = "●●●●●●●●●●"; + "-----------------------記入内容確認-----------------------\n\n"; var footer = "------------------------------------------------------------\n\n" var name = '名前'; var mail = 'メールアドレス'; var day = '日'; var intime = '入り時間'; var outtime = '終了時間'; var st = '特記事項'; var address = ""; var sheet = SpreadsheetApp.getActiveSheet(); var rows = sheet.getLastRow(); var cols = sheet.getLastColumn(); var rg = sheet.getDataRange(); Logger.log("rows="+rows+" cols="+cols); // 名前を取得 最終行の2列目 var col_name = rg.getCell(rows,2).getValue(); Logger.log("name →" + name); // 項目を取得 var col_day = rg.getCell(1, 3).getValue(); // 日付を取得 最終行の3列目 var day = rg.getCell(rows,3).getValue(); Logger.log("day →" + day); //YYYY年MM月dd日 var uday = Utilities.formatDate(day, "JST", "YYYY'年'MM'月'dd'日'"); Logger.log(uday); // 項目を取得 var col_intime = rg.getCell(1, 4).getValue(); // 入り時間を取得 最終行の4列目 var intime = rg.getCell(rows,4).getValue(); var date_in = new Date(intime*1000); //日時を取り出す var date_in_T = new Date(0,0,0,date_in.getHours(),date_in.getMinutes(),0); //時刻を取り出す Logger.log("date_in_T →" +date_in_T); // 項目を取得 var col_outtime = rg.getCell(1, 5).getValue(); // 終了時間を取得 最終行の5列目 var outtime = rg.getCell(rows,5).getValue(); var date_out = new Date(outtime*1000); //日時を取り出す var date_out_S = new Date(0,0,0,date_out.getHours(),date_out.getMinutes(),0); //時刻を取り出す Logger.log("date_out_S →" + date_out_S); // 項目を取得 var col_st = rg.getCell(1, 6).getValue(); // 特記事項を取得 最終行の6列目 var st= rg.getCell(rows,6).getValue(); Logger.log("st →" + st); // メールアドレスを取得 最終行の7列目 var col_mail = rg.getCell(rows,7).getValue(); Logger.log("col_mail →" + col_mail); body += "■"+name+"\n"; body += col_name + "\n\n"; body = col_name+" さん、今日もお疲れ様でした!\n\n"+body; body += "■"+col_day+"\n"; body += uday + "\n\n"; body += "■"+col_intime+"\n"; body += date_in_T.getHours()+"時"+date_in_T.getMinutes()+"分" + "\n\n"; body += "■"+col_outtime+"\n"; body += date_out_S.getHours()+"時"+date_out_S.getMinutes()+"分" + "\n\n"; body += "■"+col_st+"\n"; body += st + "\n\n"; body += footer; GmailApp.sendEmail(col_mail,title,body); }

たぶん無駄な文章?が多くて見ずらいかと思いますがなんとかご容赦ください。。。

宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

セルには11:00といった形式で入力していることを前提とします。

時刻の取り出しと、時間と分に分離するところを直してみました。不要な行はコメントアウトして新しいコードを提示しています。あまりスマートなコードではありませんが参考にしてみて下さい。GASの時刻のところは私もすぐに忘れて力技になったりします(苦笑)。

// var date_in = new Date(intime*1000); //日時を取り出す // var date_in_T = new Date(0,0,0,date_in.getHours(),date_in.getMinutes(),0); //時刻を取り出す var date_in_T = Utilities.formatDate(intime, "GMT+0900","HHmm"); // var date_out = new Date(outtime*1000); //日時を取り出す // var date_out_S = new Date(0,0,0,date_out.getHours(),date_out.getMinutes(),0); //時刻を取り出す var date_out_S = Utilities.formatDate(outtime, "GMT+0900","HHmm"); // body += date_in_T.getHours()+"時"+date_in_T.getMinutes()+"分" + "\n\n"; body += date_in_T.substring(0,2)+"時"+date_in_T.substring(2)+"分" + "\n\n"; // body += date_out_S.getHours()+"時"+date_out_S.getMinutes()+"分" + "\n\n"; body += date_out_S.substring(0,2)+"時"+date_out_S.substring(2)+"分" + "\n\n";

投稿2016/10/23 09:23

編集2016/10/23 09:28
true

総合スコア440

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

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

NaoyaNishihara

2016/10/25 03:10

回答くださってたことに気が付きませんでした!すごく早くに回答していただきありがとうございます!!! できました!!すごいです! 本当に助かりました! ありがとうございました!!!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問