• HOME > 
  • JavaScript > 
  • JSで日付を表示するならtoLocaleDateString...

JSで日付を表示するならtoLocaleDateStringが便利!【和暦も曜日も簡単に】

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像
広告
広告

toLocaleDateStringとは?

toLocaleDateStringは日付のフォーマットを少ないコードで簡潔に行えるメソッドです。20XX年X月X日というような年月日表示はもちろん、曜日の取得や西暦と和暦の変換まで即座に行ってくれます

これまでJavaScriptで日付をフォーマットするときは「new Date()で取得して、年と月と日を取り出して、月には1プラスして、曜日は配列を用意して…」という面倒な方法しかないと思っていたので、このメソッドの存在を知ったときは驚きました。

toLocaleDateStringの使い方は非常に簡単で、下記のように記述します。

JavaScript

var date = new Date();
var format = date.toLocaleDateString("ja-JP");
console.log(format);//20XX/X/X

たったこれだけのコードで年月日を表示することができます。(以前のような年月日をそれぞれ取得して組み合わせるといった煩わしいコードから卒業できます)

toLocaleDateStringの使い方

先ほどの使い方はあくまで基本に過ぎません。

toLocaleDateStringの便利なところはオプションで手軽にフォーマットを変更できるという点にあります。

「/」区切りではなく「年月日」にしたり、年だけ・月だけ取得したいということも自由に設定ができます。

キーと値の組み合わせによってさまざまな表示に切り替わるので詳しくは下部に用意したtoLocaleDateStringシミュレーターを触って確かめてください。

下記のオプションの組み合わせの一例です。このように設定すると「20XX年X月X日」の形式に変換したものを取得できます。

JavaScript

var date = new Date();
var option = {
    year:'numeric',
    month:'short',
    day:'numeric'
};
var format = date.toLocaleDateString("ja-JP",option);
console.log(format);//20XX年X月X日

年・月・日いずれかのみを取得する

オプションを利用すれば年だけや月だけを取り出すことも可能です。

下記のようにオプションにyearだけ記入すれば年だけ取得できます。(不要なものをコメントアウトしてもOK)

JavaScript

var date = new Date();
var option = {
    year:'numeric',
};
var format = date.toLocaleDateString("ja-JP",option);
console.log(format);//20XX年

曜日を表示する

冒頭で触れた曜日の取得はオプションにキー「weekday」を追加するだけです。

値は2種類あり、「long」だと「水曜日」という表記、「short」にすれば「(水)」という省略した表記になります。

JavaScript

var date = new Date();
var option = {
    year:'numeric',
    month:'short',
    day:'numeric',
    weekday:'short'
};
var format = date.toLocaleDateString("ja-JP",option);
console.log(format);//20XX年X月X日(水)

和暦を表示する

toLocaleDateStringを使えば西暦と和暦を変換するのにも面倒な処理を記述する必要はありません。

和暦を表示させるには引数をja-JPからja-u-ca-japaneseに変更します。

引数をja-JPからja-u-ca-japaneseに変更

JavaScript

var date = new Date();
var option = {
    year:'numeric',
    month:'short',
    day:'numeric',
    weekday:'short'
};
var format = date.toLocaleDateString("ja-JP-u-ca-japanese",option);
console.log(format);//令和20XX年X月X日(水)

和暦の形式を変更する

和暦はオプションにキー「era」を追加して形式を変更できます。

「long」にすると漢字で「令和(平成・昭和)」と表示され、「narrow」にするとイニシャル一文字「R(H・S)」が表示されます。

JavaScript

var date = new Date();
var option = {
    era:'narrow',
    year:'numeric',
    month:'short',
    day:'numeric',
    weekday:'short'
};
var format = date.toLocaleDateString("ja-JP-u-ca-japanese",option);
console.log(format);//R20XX年X月X日(水)

引数が「ja-JP」の状態でオプションにeraを設定すると「西暦(AD)」という文字が表示されます。

ハイフンに置き換えるには?【replaceAll】

「20XX/X/X」を「20XX-X-X」という形式に変換したい場合は「replaceAll」メソッドを使います。

replaceAllは特定の文字を別の文字に置き換えることができるので、これを使って「/」を「-」に置き換えます。

なお「replace」というメソッドもありますが、こちらは該当する文字が複数存在してもひとつしか置き換えることができないので、今回のように「/」を「-」にすべて置き換えるには「replaceAll」を使用します。

JavaScript

var testDate = new Date();
var test = testDate.toLocaleDateString("ja-JP");//20XX/X/X
var replace = test.replaceAll("/","-");//「/」を「-」に置き換え⇒20XX-X-X
console.log(replace);

toLocaleDateStringシミュレーター

オプションの組み合わせによる表示の違いが確認でき、同時にソースコードも生成するシミュレーターを作りました。

※動作に不備がある可能性もあるので参考程度にご利用ください。

日付を選択
西暦⇔和暦
option
キー
era(西暦和暦の形式)
year(年)
month(月)
day(日)
weekday(曜日)
結果
ソースコード

まとめ

以上がtoLocaleDateStringを使って日付のフォーマットを行う方法です。

これさえ覚えてしまえば日付の表示に手間取ることはありません。知らなかった方は是非試してみてください。

広告
広告

関連する記事

サムネイル

JSで入力値が英数字や半角かどうか即時文字チェックする【ma……

2024年10月02日
JavaScriptのmatch()は、正規表現を使って対象の文字列の中に一致するものがあるか検索できるメソッドです。このページではテキストボックスに入力された文字が数字や半角かどうかチェックする機能をmatchメソッドを使って実装する方法ついてご紹介します。
サムネイル

JSでHTMLのデータ属性を取得・更新する方法【datase……

2024年10月02日
JavaScriptのdatasetで要素のdata属性を操作する JavaScriptのdatasetは、HTML要素に設定されたデータ属性(data-*** […]
サムネイル

JavaScriptでラジオボタンの値(value)を取得す……

2024年10月02日
JSでラジオボタンの値を取得・操作する JavaScriptによるラジオボタンの操作(値の取得やチェックの切り替え)の方法を備忘録として残しておきます。 JSで […]
サムネイル

JSで大文字から小文字(小文字から大文字)へ変換する方法

2024年10月02日
JavaScriptで大文字と小文字を変換する JavaScriptを使った文字検索フォームを作るにあたり、大文字小文字どちらで入力されても良いよう、変換処理を […]
サムネイル

JSのclassList.toggleでクラスの付け外しを行……

2024年09月04日
classList.toggleとは? まず「classList」とは要素のクラス属性の情報を参照するプロパティで、「classList.add()」や「cla […]
サムネイル

JSで要素が特定のクラスを持つか調べる【classList.……

2024年09月04日
JSで要素が特定のクラスを持つか調べるには? JavaScriptで要素が特定のクラスを持つか調べるには「classList.contains」を使います。 「 […]
サムネイル

JSで文字列の中の任意の位置に別の文字を挿入する【slice……

2024年09月04日
JavaScriptに文字列の中の任意の位置に別の文字を挿入するにはslice()メソッドを利用します。sliceは特定の文字列の任意の位置から任意の文字数分を切り出すメソッドで、これを使って対象の文字列を一旦分解し、挿入したい文字と一緒新しい文字列としてくっつけ直します。