zukucode
主にWEB関連の情報を技術メモとして発信しています。

JavaScript 文字列を日付オブジェクトに変換する

JavaScript 日付を指定した書式の文字列にフォーマットするで日付オブジェクトを文字列に変換する方法を紹介しましたが、今回は逆にyyyy/MM/ddyyyyMMddなどの文字列を日付オブジェクトに変換する方法を紹介します。

以下はyyyy/MM/ddyyyy-MM-ddの形式の日付文字列を日付オブジェクトに変換しています。区切り文字があらかじめ決まっている場合は引数ではなくfunction内に固定で定義しても問題ありません。

// str: 日付文字列(yyyy-MM-dd, yyyy/MM/dd)
// delim: 区切り文字("-", "/"など)
function toDate (str, delim) {
  var arr = str.split(delim)
  return new Date(arr[0], arr[1] - 1, arr[2]);
};

var str = '2017/01/02'
var date = toDate(str, '/');

区切り文字のないyyyyMMddの形式の場合は以下のようにします。最初に/区切りの書式に変換してから上記functionと同様の処理を行います。

// str: 日付文字列(yyyyMMdd)
function toDate (str) {
  var arr = (str.substr(0, 4) + '/' + str.substr(4, 2) + '/' + str.substr(6, 2)).split('/');
  return new Date(arr[0], arr[1] - 1, arr[2]);
};

var str = '20170102'
var date = toDate(str);

関連記事