SpreadSheetの日付について②
結局文字列として検索しないとうまくいかないという話。
とあったのでそれで日付検索をしたくて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