JavaScript 文字列を日付オブジェクトに変換する
JavaScript 日付を指定した書式の文字列にフォーマットするで日付オブジェクトを文字列に変換する方法を紹介しましたが、今回は逆にyyyy/MM/dd
やyyyyMMdd
などの文字列を日付オブジェクトに変換する方法を紹介します。
以下はyyyy/MM/dd
やyyyy-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);