Computer >> Máy Tính >  >> Lập trình >> Javascript

Chỉnh lưu chuỗi thời gian trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript sử dụng một chuỗi thời gian ở định dạng “HH:MM:SS”.

Nhưng cũng có một vấn đề xảy ra, rất nhiều chuỗi thời gian bị đứt có 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 của chúng ta phải thực hiện các thay đổi bắt buộc đối với chuỗi và trả về chuỗi đã được chỉnh sửa mới.

Ví dụ -

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

Ví dụ

Sau đâ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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

08:12:11