ใช้ ternary operator ตัดสินใจศตวรรษจากค่าปี 2 หลัก
ตัวอย่างโค้ด
const yearRangeValue = 18;
const getCorrectCentury = dateValues => {
var [date, month, year] = dateValues.split("-");
var originalYear = +year > yearRangeValue ? "20" + year : "18" + year;
return new Date(date + "-" + month + "-" + originalYear).toLocaleDateString('en-GB');
};
console.log(getCorrectCentury('10-JAN-19'));รันด้วยคำสั่ง:
node fileName.js
ชื่อไฟล์: demo300.js
ผลลัพธ์
PS C:\Users\Amit\javascript-code> node demo300.js 1/10/2019
คำอธิบาย: แยกวันที่-เดือน-ปี ด้วย split("-") ปี > 18 → 20xx (ศตวรรษ 21) มิฉะนั้น 18xx (ศตวรรษ 20) +year แปลงสตริงเป็นตัวเลข toLocaleDateString('en-GB') รูปแบบ DD/MM/YYYY
ข้อจำกัด: Logic นี้สมมติช่วงปี 1900-2099 อาจไม่เหมาะกับข้อมูล lịch史กว้าง