JavaScriptで文字列から日付へ変換する方法

こんにちは、さるまりんです。

以前、文字列から数値への変換というのはやったことがあります。今回は日時です。

Date.parse()/new Date()で変換

文字列からDateオブジェクトに変換するには、parse()関数かDateオブジェクトのコンストラクターを使います。

var str = "2019/03/10 11:00:00";

var date1 = Date.parse(str); // parse()で
var date2 = new Date(str); // コンストラクターで

strには「日時を表す文字列」が使えるのですが、どんな形式が使えるかはブラウザによって差があるようです。上の例のyyyy/MM/dd HH:mm:ssの形式は現在使われている多くのブラウザで利用可能なようです。もう一つよく見る形式のyyyy-MM-dd HH:mm:ssはというとブラウザによってタイムゾーンの分ずれることがあるみたいなので注意が必要です。タイムゾーンによる差を含む形式yyyy-MM-ddTHH:mm:ss+HH:mm(もしくは-HH:mm)とするとこちらも多くのブラウザで利用できるようです。

ちょっとひねってreplaceを利用する

先ほど触れましたがyyyy-MM-ddのハイフンの形式だとズレが生じることがあります。ならば「-」を「/」に置き換えたらどう?という考え方です。

// yyyy-MM-dd HH:mm:ssの文字列
var str = '2019-03-10 11:30:00';

// 2019/03/10 11:30:00に変換します
var replaced = str.(/-/g, '/');

// parseでDateに変換します
var date = Date.parse(str);

大したことではないんですけど便利かな。

これで計算したり比較したりできるようになります。

それはまた改めてやってみたいと思います。

読んでくださってありがとうございます。

ではまた!