⊗jsPmTmAA 322 of 505 menu

การปรับวันที่อัตโนมัติใน JavaScript

JavaScript มีคุณลักษณะที่น่าสนใจและมีประโยชน์มากอย่างหนึ่ง: หากกำหนดช่วงเวลาไม่ถูกต้องในขณะสร้างวัตถุ Date มันจะถูกคำนวณใหม่ให้ถูกต้องโดยอัตโนมัติ มาดูตัวอย่างกัน

อย่างที่คุณทราบ วันที่ 35 มกราคมไม่มีอยู่จริง วันที่สูงสุดที่เป็นไปได้ของเดือนมกราคมคือวันที่ 31 นั่นหมายความว่าวันที่ 35 มกราคมของเรา มีวันส่วนเกินอยู่ 4 วัน ในกรณีเช่นนี้ JavaScript ก็แค่ จะบวกวันส่วนเกิน 4 วันนั้นเข้าไปในเดือนถัดไป:

let date = new Date(2018, 0, 35); console.log(date); // จะได้วันที่ 4 กุมภาพันธ์

ไม่สามารถระบุเฉพาะวันที่ส่วนเกินเท่านั้น แต่ ยังสามารถระบุเดือนส่วนเกินได้ด้วย ควรจำไว้ด้วยว่าเดือน เริ่มจากศูนย์ ดังนั้นเดือนสุดท้ายที่ถูกต้องคือ เดือนที่ 11 หากระบุเดือนที่ 12 ก็จะได้เดือนมกราคมของปีถัดไป:

let date = new Date(2018, 12, 1); // ระบุเดือนที่ 12 console.log(date); // จะได้วันที่ 1 มกราคม 2019

การปรับที่อธิบายไว้ข้างต้นก็ทำงานในทิศทางที่น้อยกว่าได้เช่นกัน อย่างที่คุณทราบ วันที่น้อยที่สุด ของเดือนคือวันที่หมายเลข 1 ดังนั้น หากระบุวันที่หมายเลข 0 ก็จะได้วันสุดท้ายของเดือนก่อนหน้า:

let date = new Date(2018, 1, 0); // ระบุวันที่ศูนย์ console.log(date); // จะได้วันที่ 31 มกราคม

นอกจากนี้ยังสามารถระบุค่าลบสำหรับ วันและเดือนได้ด้วย ควรจำไว้ว่า วันที่น้อยที่สุดมีหมายเลข 1 ส่วน เดือนที่น้อยที่สุดมีหมายเลข 0 นั่นหมายความว่า วันที่ลบหนึ่งจะตรงกับวันที่ 2 นับจากท้ายของเดือนก่อนหน้า ส่วนเดือนลบหนึ่ง ก็จะตรงกับเดือนสุดท้าย ของปีก่อนหน้า:

let date = new Date(2018, 1, -1); // ระบุวันที่ -1 console.log(date); // จะได้วันที่ 30 มกราคม
let date = new Date(2018, -1, 1); // ระบุเดือนที่ -1 console.log(date); // จะได้วันที่ 1 ธันวาคม 2017

ทุกสิ่งที่กล่าวมาข้างต้นทำงานคล้ายกันกับ ชั่วโมง นาที และวินาที:

let date = new Date(2018, 0, 1, 24, 0, 0); // ระบุชั่วโมงที่ 24 console.log(date); // จะได้วันที่ 2 มกราคม, 0 ชั่วโมง
let date = new Date(2018, 0, 1, 25, 0, 0); // ระบุชั่วโมงที่ 25 console.log(date); // จะได้วันที่ 2 มกราคม, 1 ชั่วโมง

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 1, 35); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 15, 1); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 3, 31); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 1, 31); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 12, 33); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 33, 33); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 5, 0); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 0, 0); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, -12, -33); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 0, 1, 23, 0, 60); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 0, 1, 23, 60, 0); console.log(date); // จะได้วันที่ใด?

กำหนดว่า JavaScript จะแปลงช่วงเวลา ต่อไปนี้เป็นวันที่ใด:

let date = new Date(2018, 0, 1, 100, 100, 100); console.log(date); // จะได้วันที่ใด?
ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ