JavaScriptでさまざまな日付形式を扱う方法|サンプルコード付きで解説
JavaScriptで日付を扱う際は、組み込みのDateオブジェクトを使用します。Dateコンストラクタにさまざまな形式の文字列を渡すことで、それぞれの形式に応じた日付オブジェクトを生成できます。ここでは、複数の日付形式を実際にページへ表示するサンプルコードを紹介します。
コード例
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>日付形式のデモ</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.sample {
font-size: 18px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>日付形式</h1>
<div class="sample"></div>
<button class="Btn">クリックしてください</button>
<h3>上のボタンをクリックすると、さまざまな日付形式が表示されます</h3>
<script>
let fillEle = document.querySelector(".sample");
let date = [];
date.push(new Date('2020-01-20'));
date.push(new Date('2020-02'));
date.push(new Date('2020'));
date.push(new Date("2015-03-25T12:00:00Z"));
fillEle.innerHTML = date + '<br>';
document.querySelector(".Btn").addEventListener("click", () => {
date.forEach(item=>{
fillEle.innerHTML += item + '<br>'
})
});
</script>
</body>
</html>コードの解説
このサンプルでは、次の4種類の文字列を引数としてDateオブジェクトを生成し、配列に格納しています。
'2020-01-20'… 年・月・日を指定したISO 8601形式'2020-02'… 年と月のみを指定した形式'2020'… 年のみを指定した形式"2015-03-25T12:00:00Z"… 時刻まで含む完全なISO 8601形式(UTC)
生成した日付はページ表示時にまとめて出力され、「クリックしてください」ボタンを押すとforEach()メソッドによって各日付が1行ずつ追記表示されます。
出力結果

ボタンをクリックすると −

補足:ブラウザ間の差異に注意
日付文字列の解析(パース)動作は、ブラウザによって挙動が異なる場合があります。特に'2020-02'や'2020'のような省略形式は実装依存となるため、実務ではIntl.DateTimeFormatやtoLocaleDateString()などを活用して、書式を明示的に指定することをおすすめします。
-
JavaScriptのDate.@@toPrimitive()関数とは?日付オブジェクトをプリミティブ値に変換する方法
JavaScriptのDate.@@toPrimitive()関数は、Dateオブジェクトをプリミティブ値に変換するために使用されます。このメソッドはSymbol.toPrimitiveプロパティを通じて呼び出され、引数に指定したヒント(hint)に応じて、文字列や数値など適切なプリミティブ値を返します。 ヒントの種類と戻り値 「default」:日付を表す文字列が返されます。 「number」:1970年1月1日00:00:00 UTCからの経過ミリ秒数(タイムスタンプ)が数値で返されます。 「string」:「default」と同様に、日付を表す文字列が返されます。 サンプルコード 以
-
JavaScriptのDateコンストラクタープロパティとは?使い方を実例で解説
JavaScriptのDateコンストラクタープロパティは、その日付オブジェクトを生成した元となるコンストラクター関数(Date())を返すプロパティです。すべてのJavaScriptオブジェクトが持つconstructorプロパティの一つで、Dateオブジェクトに対して使用すると、function Date() { [native code] }という形式の関数定義が出力されます。 このプロパティを活用することで、あるオブジェクトが本当にDateインスタンスであるかを確認したり、動的に新しいDateオブジェクトを生成したりすることができます。以下に、実際の動作を確認できるサンプルコードを紹介