#背景
GASでGoogleカレンダーの情報をなんやかんやしたくて、
**GASをいつ実行しても、「今日の0時0分」が欲しい!**と思いました。
文字列だけ取り出せるけど、Date型にしておきたく、少し悩んだのでメモ。
#もっとシンプルなもの
コメントにて頂きました、シンプルにsetHours利用する方法で良いのですね...!
リファレンスしっかり学びます。
ご指摘ありがとうございます!
const date = new Date();
date.setHours(0,0,0);
Logger.log(date);
14:48:40 情報 Thu Aug 19 00:00:00 GMT+09:00 2021
#完成形
var strToday = Utilities.formatDate(new Date(),"JST","yyyy-MM-dd").split("-");
const todayStartTime = new Date(strToday[0], strToday[1] - 1, strToday[2]);
Logger.log(todayStartTime);
10:33:44 情報 Thu Aug 19 00:00:00 GMT+09:00 2021
実行時間は10時だけど、しっかり00:00:00になってる。
これで出来た!やったね!
※まだまだキレイにできそう...
#過程とか試行錯誤
①現在時刻の取得
const today = new Date();
Logger.log(today);
10:33:44 情報 Thu Aug 19 10:33:44 GMT+09:00 2021
②Date→文字列に変換
この時に、年月日のみ取り出すようにしてます。
const strToday = Utilities.formatDate(new Date(),"JST", "yyyy-MM-dd");
Logger.log(strToday);
10:33:44 情報 2021-08-19
③ハイフンで分ける!配列に格納
splitですね。
配列なので、宣言をconst
からvar
にしました。
var strToday = Utilities.formatDate(new Date(),"JST", "yyyy-MM-dd").split("-");
Logger.log(strToday);
10:33:44 情報 [2021, 08, 19]
④年月日情報から、Date型を作成!
var strToday = Utilities.formatDate(new Date(),"JST","yyyy-MM-dd").split("-");
const todayStartTime = new Date(strToday[0], strToday[1] - 1, strToday[2]);
Logger.log(todayStartTime);
10:33:44 情報 Thu Aug 19 00:00:00 GMT+09:00 2021
#参考:
https://www.yoheim.net/blog.php?q=20190701
#同様の記事ありましたね、、
https://qiita.com/Bong/items/dc632edb6fe3d44f2d5b