RCIE-ジャンクのコード屋

主に自分のためにコーディングのTIPSを蓄積しています。

(JavaScript)日付を8ケタ文字列YYYYMMDDに変換する(+その逆)

概要

1234年5月6日を表すDateオブジェクト⇄"12340506"
このようにDateと8ケタ文字列を相互に変換する方法を紹介します。

コード

// DateをYYYYMMDD文字列に変換する
function dateToYyyymmdd(date){
	let n = date.getFullYear() * 10000; // YYYY0000
	n += date.getMonth() * 100 + 100; // YYYYMM00
	n += date.getDate(); // YYYYMMDD
	return ("000" + n).slice(-8); // 後ろから8桁を取り出す
}
alert(dateToYyyymmdd(new Date())); // 今日の日付で動作確認

// YYYYMMDD文字列をDateに変換する
function yyyymmddToDate(s){
	let y = s.slice(0, 4); // YYYY
	let m = s.slice(4, 6); // MM
	let d = s.slice(6, 8); // DD
	return new Date(+y, +m - 1, d);
}
alert(yyyymmddToDate("20201228")); // Mon Dec 28 2020 00:00:00 GMT+0900