⊗jsPmTmSC 335 of 505 menu

การเปรียบเทียบวันที่แบบสตริงใน JavaScript

สมมติว่าเรามีสองวันที่ในรูปแบบข้อความดังต่อไปนี้:

let date1 = '2020-12-01'; let date2 = '2019-12-01';

ในกรณีนี้ เราสามารถเปรียบเทียบวันที่ทั้งสองนี้ และทราบได้ว่าวันที่ใดมากกว่า:

console.log(date1 > date2); // จะแสดงผล true

การเปรียบเทียบวันที่เหล่านี้เกิดขึ้นได้อย่างไร? ความจริงก็คือ วันที่ของเราเป็นสตริง และ JavaScript เปรียบเทียบพวกมันในฐานะสตริง นั่นคือมันจะเปรียบเทียบอักขระตัวแรก ของทั้งสองวันที่ก่อน: ถ้าพวกมันเหมือนกัน JavaScript จะเปรียบเทียบอักขระตัวที่สอง และทำเช่นนี้ไปเรื่อยๆ จน กว่าจะพบความแตกต่าง ต้องขอบคุณรูปแบบวันที่ของเราที่ วางปีก่อน ตามด้วยเดือน และวัน วิธีเปรียบเทียบแบบนี้จึงเป็นไปได้

ประเด็นคือ ถ้าหลักปีแรกมีค่ามากกว่า หลักปีที่สอง นั่นหมายความว่าไม่ สำคัญแล้วว่าจะเกิดอะไรขึ้นกับเดือนและวัน - ปีแรกนั้นมากกว่าอย่างแน่นอน หากปีตรงกัน, วันที่ที่มีเดือนมากกว่าจะมีค่ามากกว่า และถ้าเดือนตรงกัน วันที่ที่มีวันมากกว่า จะมีค่ามากกว่า ส่วนถ้าวันตรงกัน วันที่ทั้งสองก็จะเท่ากัน

สิ่งสำคัญอีกอย่างคือ วันที่ต้องอยู่ในรูปแบบเดียวกัน ในกรณีของเรา ตัวคั่นส่วนต่างๆ ของวันที่คือ เครื่องหมายยัติภังค์ ซึ่งแน่นอนว่าไม่จำเป็นเสมอไป ตัวอย่างเช่น สามารถใช้จุดได้:

let date1 = '2020.12.01'; let date2 = '2019.12.01';

หรือแม้แต่เอาเครื่องหมายคั่นออกทั้งหมด:

let date1 = '20201201'; let date2 = '20191201';

สิ่งสำคัญเพื่อให้การเปรียบเทียบถูกต้องคือ ลำดับการวางต้องเป็นดังนี้: ปีก่อน, ตามด้วยเดือน, ตามด้วยวัน

เขียนโค้ดที่เปรียบเทียบวันที่สองรายการด้านล่าง และแสดงข้อความว่าอันไหนมากกว่า:

let date1 = '2020-11-30'; let date2 = '2020-12-01';
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ