Yado_tech

旅館+ITとはなんぞ

SpreadSheetの日付について②

結局文字列として検索しないとうまくいかないという話。

tonari-it.com

とあったのでそれで日付検索をしたくてindexOf()を使ってもうまくいかなかった。
ということでGASのUtilities.formatDate()を使って文字列に直したらindexOf()も動いた。

Class Utilities  |  Apps Script  |  Google Developers

取得した配列は_.zip.apply(_,data)で配列を転置した後、【Array】.map()を使って配列全体にUtilities.formatDate()を適用。

function test(){
  var sheet = SpreadsheetApp.getActive().getSheetByName('temp');
  var dates = Utilities.formatDate(new Date(2017,8,5),"JST","yyyy/MM/dd");
  var data = sheet.getDataRange().getValues();
  var _ = Underscore.load();
  var trans_data = _.zip.apply(_,data);
  var texted_data = trans_data[0].map(function(x){var y = new Date(x);return Utilities.formatDate(y,"JST","yyyy/MM/dd")});
  Logger.log(texted_data.indexOf(dates));
}

これでようやく検索が機能する

よかった。
var地獄なのでもう少しコードが読みやすくなればとは思うものの、まぁ動けばOK