日付は YYYY/MM/DD hh:mm:ss.iii
の形式で欲しい!のに無いから自作した(のに、、よく調べたらあった
日付のフォーマットは YYYY/MM/DD hh:mm:ss.iii
形式で欲しい!!そう、日本人なので。
ってか、日付フォーマット、多すぎ。そのまえに世界中でバラバラなの、なんとかして。
さらに最近は「ミリ秒」もあたりまえにほしい!
コード(最初の版。追記あり〼)
//-------------------------------------------------------
// 現在の日時を文字列で返す
const get_formated_time = (
_fmt = 'YYYY/MM/DD hh:mm:ss.iii',
_dt = new Date(),
) => [
[ 'YYYY', _dt.getFullYear() ],
[ 'MM', _dt.getMonth() + 1 ], // なぜ Java と同じ仕様にしたのか?小一時間問いたい
[ 'DD', _dt.getDate() ],
[ 'hh', _dt.getHours() ],
[ 'mm', _dt.getMinutes() ],
[ 'ss', _dt.getSeconds() ],
[ 'iii', _dt.getMilliseconds() ],
].reduce(
(s,a) => s.replace( a[0], `${a[1]}`.padStart(a[0].length,'0') ),
_fmt
)
// 使い方
const put = s => document.body.innerText += s + '\n'
// const put = s => console.log( s )
put( get_formated_time() ) // -> 2022/04/10 14:56:21.238
put( get_formated_time( 'MM/DD/YYYY' ) ) // -> 04/10/2022
put( get_formated_time( 'hh-mm-ss' ) ) // -> 14-56-45
put( get_formated_time( 'YYYY/MM/DD hh:mm:ss', new Date( '2000/1/1 12:34:56' ) ) ) // -> 2000/01/01 12:34:56
実行例(Codepen)
See the Pen JavaScript で YYYY/MM/DD hhss.iii 日付フォーマット by yamazaki.3104 (@yamazaki3104) on CodePen.
コードの解説
使用している関数の解説は、こちら(手抜き
ってか、必要ないでしょ。
new Date 日付クラス
reduce() 配列の要素を順番に実行
replace() 文字列置換
padStart() ゼロサプレス パディング(ゼロで埋める)
追記: よく調べたら、ありました。毎度お騒がせしております。
追記:上の関数 get_formated_time() を使わなくても、、、、↓Intl.DateTimeFormat()で行けました
const yyyymmdd = new Intl.DateTimeFormat(
undefined,
{
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 3,
}
)
console.log( yyyymmdd.format( new Date() ) )
それでは引き続き、プログラミングライフをお楽しみください。