Google Apps Script のスプレッドシートに日付が下のように並んでいるとします。
これを、Moment.jsを使って取得したいのですが、うまくいきません。
最終的には、日付を取得して、期間の計算を行いたいです。
開始日 | 期日 |
---|---|
2018-06-21 | 2018-06-25 |
2018-06-22 | 2018-06-27 |
2018-06-22 | 2018-06-26 |
2018-06-22 | 2018-06-26 |
2018-06-22 | 2018-06-26 |
2018-06-20 | 2018-06-28 |
2018-06-23 | 2018-06-30 |
例)
2018-06-23
を
6/23
と取得したい。
###コード
JavaScript
1//開始日の取得 2var start_date = sheet1.getRange(i,3).getValues(); 3var start_date = Moment.moment(start_date,'MM/DD'); 4//期日の取得 5var end_date = sheet1.getRange(i,4).getValues(); 6var end_date = Moment.moment(end_date,'MM/DD'); 7 8//期間の計算 9var NOD_se_date = end_date.diff(start_date,'days');
###追記:エラー
試しに、日付が取得できているか以下のプログラムで確認。
JavaScript
1function test(){ 2 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 3 var sheet1 = spreadsheet.getSheetByName('全チケット情報'); 4 5 var lastRow_i = sheet1.getLastRow(); 6 7 for(var i = lastRow_i;i>=2;i--){ 8 var start_date = sheet1.getRange(i,3).getValue(); 9 var start_date = Moment.moment(start_date).format('MM/DD'); 10 11 var end_date = sheet1.getRange(i,4).getValue(); 12 var end_date = Moment.moment(end_date).format('MM/DD'); 13 14 var NOD_se_date = end_date.diff(start_date,'days'); 15 Logger.log(start_date); 16 Logger.log(end_date); 17 Logger.log(NOD_se_date); 18 } 19}
すると、以下のログが表示。
日付の取得まではOK。
[18-07-18 12:31:36:821 JST] 06/18 [18-07-18 12:31:36:821 JST] 06/20 [18-07-18 12:31:36:907 JST] 06/19 [18-07-18 12:31:36:908 JST] 06/24 [18-07-18 12:31:36:990 JST] 06/19
しかし、期間の計算で今度はエラーが出る。
JavaScript
1var NOD_se_date = end_date.diff(start_date,'days'); 2->TypeError: オブジェクト 06/20 で関数 diff が見つかりません。 3
どうしたものか。。
回答1件
あなたの回答
tips
プレビュー