Js では通常、new Date() メソッドを使用して現在の時刻を取得します。時刻の形式は次のようになります。
new Date().getTime() // 返回的的是一个long型的毫秒数
let a = new Date().getTime(); // 1675145050608
let b = new Date() // 2023-01-31T06:04:28.113Z
カウントダウン、残り時間の計算、時間表示など、時間関連のニーズを行う場合。従う必要があります:
日時分秒形式で表示するので、取得した時刻に合わせて換算する方法は?
参考までに、インターネット上にはすでに多くの時間変換関数がありますが、ここでは別の実装方法を示します。
たとえば、時間に関する要件があり、期限を設定し、現在の時刻を取得し、2 つの時刻の時差を計算し、現在の時刻が期限以下の場合は操作 A を実行します。現在時刻 > 締め切り, その後、操作 B に進みます.
上記のコード スニペットでは、 getTime() メソッドを呼び出すと時間をミリ秒形式に変換できることがわかっているため、この時間を日、時、分、秒の型のデータに変換するだけで済みます。
変換の考え方は非常に単純で、ミリ秒を秒に変換する ----- 1000 で割る、秒を分に変換する ----- 60 で割る、
分を時間 ----- 60 で割った値、時間を日 ----- 24 で割った値、結果は整数であることに注意してください。
// 剩余时间 天-时-分-秒
let lefttime = endtime.getTime() - nowtime.getTime(),
d = checkTime(Math.floor(lefttime / (1000 * 60 * 60 * 24))), // 天
h = checkTime(Math.floor((lefttime / (1000 * 60 * 60)) % 24)), // 时
m = checkTime(Math.floor((lefttime / (1000 * 60)) % 60)), // 分
s = checkTime(Math.floor((lefttime / 1000) % 60)); // 秒
// 将时间格式数字统一转换为两位 8 --> 08
const checkTime = (i: number) => {
if (i < 10) { return "0" + i }
return i;
};
変換後、必要なデータを取得して、対応する割り当てを実行できます。