JavaScriptの日時処理
こんにちわ、あっくんです。いつもありがとうございます。今日から4月ですね。昨日、職業訓練(Webデザインコース実践科)を受講するための試験に行ってきました。筆記試験と面接がありました!筆記試験とか久しぶりすぎて、緊張しました。試験の倍率はおそらく2~3倍くらいやとおもいます。中学レベルの数学と国語を20分間やってきました。そんなに難しくなかったので、合格できるか厳しい戦いです。もし合格したら、JavaScriptも学べます。季節の変わり目で、体調いかがですか?無理なさらずに頑張っていきましょー!!
今回はJavaScriptの日時処理についてやっていきましょう!
- 基準となる年月日時分秒から、何ミリ秒経過したのかで管理します。
- 基準時間からの経過時間から、年や月、日、分、秒などを計算する関数が用意されています。
- 各国の日時の表現の違いに対応した文字列化をする関数が用意されています。
- 時差に対応する関数が用意されています。
- 日時の処理は複雑です。
JavaScriptの基準時間は1970年1月1日00:00:00です。
UTCは世界協定時の時間です。
Dateオブジェクト
日時の処理は、new Date()でDateオブジェクトを作ることで行います。
構文new Date()
構文new Date(基準時間からのミリ秒)
構文new Date(年,月,日,時,分,秒)
構文new Date(日時の文字列)
文字列で日時を書くときはISO 8601形式で書きます。
YYYY-MM=DDTHH:mm:ss.sssZの形で、
年がYYYY
月がMM
日がDD
時がHH
分がmm
秒がss.ss.sssでミリ秒
日時処理のメソッド
.toIOSString()
ISO 8601の文字列で得ます。
.toJOSN()
JSON用の文字列を得る。得られる文字列は.toISOString()と同じです。
.toUTCString()
UTCタイムゾーンを使用する文字列を得ます。
.toLocaleString()
文字列を得ます。
.toDateString()
その言語の書式で文字列を得ます。
.toLocalDateString()
その言語の書式で文字列を得ます。
.toTimeString()
時刻部分の文字列を得ます。
.toLocaleTimeString()
その言語の書式で時刻部分の文字列を得ます。
.valueOf()
数値を返します。
.getTime()
時間の数値を得ます。得られる数値は.valueOf()と同じです。
.getTimezoneOffset()
現地の時間帯のオフセットの分数を返します。
日時の取得や変更
年月日時分秒を得たり変えたりするメソッドがそれぞれあります。取得はget,変更はsetを使います。注意すべきは月と曜日です。0から始まります。
日時取得のメソッド
.getFullYear()
地方時の年(1999などです)を返します。
.getMonth()
地方時の月(0~11)を返します。
.getDate()
地方時の日(1~31)を返します。
.getDay()
地方時の曜日(0~6)を返します。
.getHours()
地方時の時(0~23)を返します。
.getMinutes()
地方時の分(0~59)を返します。
.getSeconds()
地方時の秒(0~59)を返します。
.getMilliseconds()
地方時のミリ秒(0~999)を返します。
日時取得(UTC)のメソッド
.getUTCFullYear()
UTCの年(1999などです)を返します。
.getUTCMonth()
UTCの月(0~11)を返します。
.getUTCDate()
UTCの日(1~31)を返します。
.getUTCDay()
UTCの曜日(0~6)を返します。
.getUTCHours()
UTCの時(0~23)を返します。
.getUTCMinutes()
UTCの分(0~59)を返します。
.getUTCSeconds()
UTCの秒(0~59)を返します。
日時変更のメソッド
.setFullYear(n)
地方時の年(1999などです)を数値nに設定します。
.setMonth(n)
地方時の月(0~11)を数値nに設定します。
.setDate(n)
地方時の日(1~31)を数値nに設定します。
.setDay(n)
地方時の曜日(0~6)を数値nに設定します。
.setHours(n)
地方時の時(0~23)を数値nに設定します。
.setMinutes(n)
地方時の分(0~59)を数値nに設定します。
.setSeconds(n)
地方時の秒(0~59)を数値nに設定します。
.setMilliseconds(n)
地方時のミリ秒(0~999)を数値nに設定します。
日時変更(UTC)のメソッド
.setUTCFullYear(n)
UTCの年(1999などです)を数値nに設定します。
.setUTCMonth(n)
UTCの月(0~11)を数値nに設定します。
.setUTCDate(n)
UTCの日(1~31)を数値nに設定します。
.setUTCDay(n)
UTCの曜日(0~6)を数値nに設定します。
.setUTCHours(n)
UTCの時(0~23)を数値nに設定します。
.setUTCMinutes(n)
UTCの分(0~59)を数値nに設定します。
.setUTCSeconds(n)
UTCの秒(0~59)を数値nに設定します。
.setUTCMilliseconds(n)
UTCのミリ秒(0~999)を数値nに設定します。
経過時間を計算
ある時間から、ある時間までの経過時間は、Dateオブジェクトを利用することで、計算できます。
<html>
<script>
// 開始時間のミリ秒数を取得
const start = Date.now();
// 時間のかかる処理
for (let i = 0; i < 5000; i++) {
const str1 = "@".repeat(5000);
const arr = [...str1];
const str2 = arr.join();
}
// 終了時間のミリ秒数を取得
const end = Date.now();
// 差分を求めて、コンソールに出力
const diff = end - start;
console.log(`開始${start}, 終了${end}。経過時間は${diff}ミリ秒。`);
</script>
</html>
Code language: HTML, XML (xml)
Console 開始1617259032624, 終了1617259033471。 経過時間は847ミリ秒
JavaScript完全入門で勉強させていただいています。2021年2月16日発売の本です。