@sato12 先月動いてた理由はよく分からんけど、日付だから失敗してるのは多分合ってると思う。
Date型のオブジェクト同士は、==では比較できない。例えて言うなら、「10と10は同じですか?」だと同じだけど、日付はオブジェクトなので「私の持ってる10円玉とあなたの持ってる10円玉は同じですか?」みたいな感じになる(10円という価値は同じだが、物体としては違う)。
ので、Dateのオブジェクトに対して、getTime()メソッドを呼んで、UNIX時間というミリ秒単位の整数値にしてやると比較できる。
const unixTimes = datesArray.map(date => date.getTime());
const needle = targetDate.getTime();
const hasDate = unixTimes.includes(needle);
みたいにするといいと思う。
GASに限らずいろんな言語の
@kussy_tessy ウワァ〜〜なるほどわかりやすいです!ありがとうございます!!
GASは前までできていたことが仕様変更でできなくなるのがあるあるなので先月できてたのは偶然なんだと思います😭
Utilities.formatdate(new Date() , 'JST' , 'yyyy/mm/dd');
こういう感じで今日の日付の形式を指定したつもりで、
スプレッドシートからgetDisplayValuesで取得したyyyy/mm/ddの形の値たちの配列と比較したかったんですが
確かに日付までならともかくミリ秒単位では不一致ですわ…
@sato12 手荒すぎるww
@kussy_tessy 🤣🤣🤣
@kussy_tessy そうそう、そうです!