*当ブログではアフェリエイト広告を利用しています。

GAS

【GAS】日付を操るDateオブジェクト

GAS Dateオブジェクト
momeq
モー
モー

今回は、Google App ScriptsのDateオブジェクトを見ていきます。日付を扱うなら必須なので、是非どのようなものかを覚えておいて欲しいです。

ニャー
ニャー

他言語である日付の妥当性をチェックする機能がないから、このオブジェクトの使い方が特に重要になるんだにゃ。

Dateオブジェクトとは

モー
モー

Dateオブジェクトの使い方を確認しておきましょう。このオブジェクトを使うためには、インスタンス化が必要なので、Newでインスタンス化して変数に入れて使うことになります。

使い方:変数 = new Date(引数)

↑のようにすると、Dateオブジェクトができます。引数部分は必須ではありませんが入れる内容によって、作られるDateオブジェクトが異なってきます。

  • 引数なし → 実行日時(今日)のDateオブジェクト
  • 日付になる引数 → 指定した日付をDateオブジェクトに変換
  • 日付にならない引数 → Invalid Date(無効な日付)のDateオブジェクト

<使い方>

変数 = new Date(引数)

↑のようにすると、Dateオブジェクトができます。引数部分は必須ではありませんが入れる内容によって、作られるDateオブジェクトが異なってきます。

  • 引数なし → 実行日時(今日)のDateオブジェクト
  • 日付になる引数 → 指定した日付をDateオブジェクトに変換
  • 日付にならない引数 → Invalid Date(無効な日付)のDateオブジェクト
ニャー
ニャー

実行日時を表したいなら引数なし、特定の日時が必要なら文字列等で日時を指定して渡すと、Dateオブジェクトに変換、日付として表せないものは、Invalid Dateが返ってくるにゃ。3つの使い方をよく覚えておくと使いやすいにゃ。

使い方を見てみよう

基本的な使い方

それでは使い方を見ておきましょう。まずは基本的な使い方から。

モー
モー

それでは使い方を見ておきましょう。まずは基本的な使い方から。

// 引数なしで使用すると、現在日時のDate型を返す
const today = new Date();
console.log(today);
>> Sun Sep 04 2022 00:00:00 GMT+0900 (Japan Standard Time)

// 日付を入れると、その日付の0時ちょうどの日時のDate型を返す
const today = new Date("2022/12/31");
console.log(today);
>> Sat Dec 31 2022 00:00:00 GMT+0900 (Japan Standard Time)

// 日時を入れると、その日時を表すDate型を返す
const today = new Date("2022/12/31 12:34:56");
console.log(today);
>> Sat Dec 31 2022 12:34:56 GMT+0900 (Japan Standard Time)

// 日付ではない値を入れると"Invalid Date"(無効な日付)を返す
const today = new Date('aaa');
console.log(today);
>> Invalid Date

Dateオブジェクトの関数

ニャー
ニャー

オブジェクトに対し、関数を使うと特定の値を返すことができるにゃ。年だけ、分だけなど特定の場所を返せると、より幅が広がるにゃ。

const today = new Date("2022/12/31 12:34:56");

// 年を返す
console.log(today.getFullYear()); 
>> 2022

// 月を返す(ただし、0~11で返されるため+1をする)
console.log(today.getMonth()+1);
>> 12

// 日を返す
console.log(today.getDate());
>> 31

// 時を返す
console.log(today.getHours());
>> 12

// 分を返す
console.log(today.getMinutes());
>> 34

// 秒を返す
console.log(today.getSeconds());
>> 56

// 曜日を表す数字を返す(日曜日から0となり、土曜日が6となる)
console.log(today.getDay());
>> 6

getTime()でUnixタイムスタンプを取得する

getTime関数を使うことで、基本的には、Unixタイムスタンプを返します。Invalid Dateになる場合は、 NaNを返します。

モー
モー

getTime関数を使うことで、基本的には、Unixタイムスタンプを返します。Invalid Dateになる場合は、 NaNを返します。


const today = new Date("2022/12/31 12:34:56");
console.log(today.getTime())
>> 1672457696000


const today = new Date(1672457696000);
console.log(today)
>> Sat Dec 31 2022 12:34:56 GMT+0900 (Japan Standard Time)

const today = new Date("aaa");
console.log(today.getTime())
>> NaN

このNaNが返ってくるところがつかいどころだにゃ。日付データでなければNaNが返ってくることを知っていれば、条件分岐も可能だにゃ。ぜひ試して見て欲しいんだにゃ。

ニャー
ニャー

このNaNが返ってくるところがつかいどころだにゃ。日付データでなければNaNが返ってくることを知っていれば、条件分岐も可能だにゃ。ぜひ試して見て欲しいんだにゃ。

日付データかそれ以外か

モー
モー

最後に、何が日付データとして扱われるのかの例を載せておきます。自由入力をさせる場合などは、気をつけなければならないので、よく覚えておいてくださいね。

日付データとなる場合

const today = new Date("2022/12/31");
console.log(today)
>> Sat Dec 31 2022 00:00:00 GMT+0900 (Japan Standard Time)

const today = new Date("2022-12-31");
console.log(today);
>> Sat Dec 31 2022 09:00:00 GMT+0900 (Japan Standard Time)

const today = new Date("2022.12.31");
console.log(today);
>> Sat Dec 31 2022 09:00:00 GMT+0900 (Japan Standard Time)

const today = new Date("2022 12 31");
console.log(today);
>> Sat Dec 31 2022 09:00:00 GMT+0900 (Japan Standard Time)

const today = new Date("2022, 12, 31");
console.log(today);
>> Sat Dec 31 2022 09:00:00 GMT+0900 (Japan Standard Time)

const today = new Date("2022/12-31");
console.log(today);
>> Sat Dec 31 2022 09:00:00 GMT+0900 (Japan Standard Time)

const today = new Date("2022/12/31 12:35:45");
console.log(today);
>> Sat Dec 31 2022 12:35:45 GMT+0900 (Japan Standard Time)

日付データにならない場合

const today = new Date("20221231");
console.log(today);
>> Invalid Date

const today = new Date("2022_12_31");
console.log(today);
>> Invalid Date

const today = new Date("2022年12月31日");
console.log(today);
>> Invalid Date

const today = new Date("令和4年12月31日");
console.log(today);
>> Invalid Date

const today = new Date("22/12/31");
console.log(today);
>> Invalid Date

const today = new Date("12:35:45");
console.log(today);
>> Invalid Date

const today = new Date("12時35分45秒");
console.log(today);
>> Invalid Date

プログラミングを学ぶならTechAcademy(テックアカデミー)がおすすめ!

TechAcademy [テックアカデミー]

モー
モー

独学で苦戦している人は、一度しっかりと基礎を学ぶと次のステップへ進めますよ。今のおすすめは、TechAcademy(テックアカデミー)ですね。

TechAcademyのおすすめポイント
  • オンラインで選抜された現役エンジニアから学ぶことができる
  • 自宅からWeb制作・プログラミング・アプリ開発など幅広い分野を学べる
  • 学ぶだけではなく、転職の支援、副業に活かせるスキルの習得、副業の仕事紹介まで行っている
ニャー
ニャー

無料体験や相談もあるから、一度試してみてもいいんだにゃ!

\無料体験、無料相談はこちらから/



記事URLをコピーしました