web-dev-qa-db-ja.com

Google Apps Scriptでのオブジェクトから文字列への変換

Googleスプレッドシートから情報を取得し、それを使用して、シートに記載された情報を記載したメールを送信しようとしています。電子メールの部分はダウンしていますが、editAsTextを使用して不要な文字を削除しようとすると、許可されません。ここに私が達成しようとしているものがあります:

var start = row[5];
returns: Fri Feb 20 2015 00:00:00 GMT+0200 (SAST)

それを編集して:

Fri Feb 20 2015
1
FFDP-FTW

基本的には日付をフォーマットする必要があります。

JavaScript Dateオブジェクトを操作します。次のようなものです。

var startDate = new Date(row[5]);
var weekDay;
switch (startDate.getDay()) {
  case 0: weekDay = "Sun"; break;
  case 1: weekDay = "Mon"; break;
  case 2: weekDay = "Tue"; break;
  case 3: weekDay = "Wed"; break;
  case 4: weekDay = "Thu"; break;
  case 5: weekDay = "Fri"; break;
  case 6: weekDay = "Sat"; break;
}
var month;
switch (startDate.getMonth()) {
  case 0: month = "Jan"; break;
  case 1: month = "Feb"; break;
  case 2: month = "Mar"; break;
  case 3: month = "Apr"; break;
  case 4: month = "May"; break;
  case 5: month = "Jun"; break;
  case 6: month = "Jul"; break;
  case 7: month = "Aug"; break;
  case 8: month = "Sep"; break;
  case 9: month = "Oct"; break;
  case 10: month = "Nov"; break;
  case 11: month = "Dec"; break;
}

var formattedDate = weekDay + " " + month + " " + startDate.getDate() + " " + startDate.getFullYear();

変数formattedDateは、Fri Feb 20 2015のような文字列を保持するようになりました。

代わりに文字列を操作してこれを行いたい場合で、スプレッドシートの言語設定に関心がない場合は、次を使用できます。

var startDate = row[5] + "";
var formattedDate = startDate.substring(0, 15);
0
Vidar S. Ramdal

。toDateString() メソッドを試しましたか?これがあなたに与えるものを見てください:

var start = row[5];
var dateStr = start.toDateString();
Logger.log(dateStr)
1
JPV

おそらく、これを最初の場所で使用することで、必要な方法でフォーマットできます。

コード

var start = row[5]; // "Fri Feb 20 2015 00:00:00 GMT+0200 (SAST)"    
var newStart = Utilities.formatDate(new Date(start), "SAST", "EEE MMM d yyyy");
Logger.log(newStart);

スクリーンショット

enter image description here

0