かとのぼのマイコード・マイライフ

エンジニア兼ウェブサービス開発者のプログラミングと雑記ブログ

DateオブジェクトのtoLocale​Time​Stringで秒を表示しないようにする【JavaScript】

JavaScriptでTimeStampを使うときにはDateオブジェクトが使えます。

developer.mozilla.org

このサイトを見れば様々なメソッドがわかります。

何時何分の時刻だけを表示したい場合

TimeStampの時間を表示したい場合はtoDate()で表現できます。ただ、今回時刻だけを表示したかったので色々探したら「toLocale​Time​String」を使えば良いことがわかりました。

developer.mozilla.org

toLocaleTimeString() メソッドは、この Date オブジェクトの「時刻」部を表す言語に依存した文字列を返します。新しい locales 引数と options 引数により、アプリケーションは、使用される書式変換の言語の指定や、関数の振る舞いのカスタマイズができます。古い実装のアプリケーションは、locales 引数と options 引数を無視します。使用されるロケールや返される文字列の書式は、完全に実装依存です。

このメソッドを使えば何時何分何秒の情報だけを取得できます。 

何秒の表示を無くしたい場合

何時何分かだけが必要だったのですが、この「toLocale​Time​String」だと秒までもれなく付いてきますので余計です。

検索すると色々な回答がありましたが少し面倒です。

How to show only hours and minutes from javascript date.toLocaleTimeString()? - Stack Overflow

もっと簡単にやるには、オプションを付ければ良いことがわかりました。

toLocaleTimeString() メソッドから得られる結果は、options 引数でカスタマイズできます:

 オプションのつけかたは、('国のゾーン', {オプション})です。

日本時間で、時間と分を所得する場合は下記コードです。

.toLocaleTimeString('ja', { hour: 'numeric', minute: 'numeric'})

注意:locales 引数と options 引数がサポートされているか確認する

locales引数とoptions 引数は、まだすべてのブラウザーでサポートされていません。これらが実装されているかどうかは、不適切な言語タグを与えて RangeError 例外でリジェクトされることで確かめられます

まだ全てのブラウザで対応されないそうなので、注意が必要です。

 

参考:

https://stackoverflow.com/questions/19407305/how-to-show-only-hours-and-minutes-from-javascript-date-tolocaletimestring

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString