Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การแก้ไขสตริงเวลาใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้สตริงเวลาในรูปแบบ “HH:MM:SS”

แต่มีปัญหานอกจากนี้ มีหลายครั้งที่สตริงขาดซึ่งหมายความว่าส่วน MM อาจเกิน 60 และส่วน SS อาจเกิน 60 เช่นกัน

ฟังก์ชันของเราควรทำการเปลี่ยนแปลงที่จำเป็นในสตริงและส่งคืนสตริงที่แก้ไขใหม่

ตัวอย่างเช่น −

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

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

08:12:11