Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chuẩn hóa chuỗi thời gian bằng JavaScript


Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi thời gian theo định dạng “HH:MM:SS”.

Nhưng do lỗi cộng, nhiều chuỗi thời gian bị hỏng, nghĩa là phần MM có thể vượt quá 60, và phần SS cũng có thể vượt quá 60.

Hàm phải thực hiện các thay đổi cần thiết cho chuỗi và trả về chuỗi đã chỉnh sửa.

Ví dụ:

"08:11:71" -> "08:12:11"

Ví dụ

Dưới đây là mã:

const str = '08:11:71'; 
const rectifyTime = (str = '') => { 
  if(!Boolean(str)){ 
    return str; 
  }; 
  const re = /^(\d\d):(\d\d):(\d\d)$/; 
  if (!re.test(str)){ 
    return null; 
  }; 
  let [h, m, s] = str.match(re).slice(1,4).map(Number); 
  let time = h * 3600 + m * 60 + s; 
  s = time % 60; 
  m = (time / 60 |0) % 60; 
  h = (time / 3600 |0) % 24; 
  return [h, m, s] 
    .map(String) 
    .join(':'); 
}; 
console.log(rectifyTime(str));

Kết quả

Kết quả console:

08:12:11