0

私は Google アプリ スクリプトを使用しており、カスタム メニューに基づいてメールを送信する機能があります。それらを送信する関数は、次のように、getRowsData() 関数を使用してすべての列をオブジェクトとして収集し、それらのオブジェクトを文字列に連結し、htmlBody パラメーターを介して送信します。

MailApp.sendEmail({
  to: recipient,
  subject: emailSubject,
  htmlBody: message,
});

メッセージ変数は、テキストと連結された変数を保持し、HTML フォーマットを適用して電子メールを作成します。他の変数に基づいて順序付きリストを作成する部分があり、そのうちの 1 つはシート内の列から取得される日付です。

var message = "Other stuff here....Then"+
"<ol>"+
  "<li>"+desc+"</li>"+
  "<li>"+actions+"</li>"+
  "<li>"+datesPer+"</li>"+
  "<li><strong>Additional notes:</strong>"+actionNotes+"</li>"+
"</ol>"+
"More stuff below....";

電子メールが送信されると、datesPer 変数は実際の日付の後に一連の他の文字を出力します。シートに添付されたフォームが日付スタンプを挿入しているためだと思います:

3. Date: Tue Nov 08 2016 00:00:00 GMT-0800 (PST)

00:00:00 GMT-0800 (PST) は変更したいもので、ゼロは通常の時刻形式 (たとえば午前 8:00) を使用し、それ以降はすべて削除されます。日付を格納する配列は、電子メールで送信されるように書式設定されているため、これはコードに正確に伝えずに、正確に伝えたい場合です。ドキュメントで Utilities.formatDate() クラスを見ましたが、これをシートのスクリプト エディターで呼び出すことができないようです (または、間違っていると思います)。

フォームの設定を見逃していて、これがチェックボックスのどこかにある場合は、教えてください:)コードで修正できる場合は、いくつかの提案が欲しいです。

ありがとう!

4

1 に答える 1

2

JavaScript の Date オブジェクト関数を使用して、日付文字列から時刻を取得できます。詳細については、http ://www.w3schools.com/js/js_date_methods.asp を参照してください。

スクリプトには次のような行が必要です。

datesPer = "Date:" + TimeArray[0]

配列の値を使用して新しい Date オブジェクトを作成することで、日付を変更できます。

var dateFromSheet = new Date (TimeArray[0])
var day = dateFromSheet.getDay() //(Returns 0- Sunday, 6 - Saturday)
var time = dateFromSheet.getHour() + ":" + dateFormSheet.getMinutes()

上記から取得した値は、好みに合わせてフォーマットして、datesPer 変数に渡すことができます。

于 2017-02-03T23:18:54.637 に答える