
วันที่และเวลาเป็นหลักสูตรบังคับที่ไม่สามารถข้ามได้ในกระบวนการเขียนโปรแกรม โชคดี JavaScript ได้เตรียมวัตถุวันที่ (วันที่) ในตัวสำหรับเรา เราสามารถสร้าง จัดเก็บ แก้ไข วัดเวลา พิมพ์ และการทำงานพื้นฐานอื่นๆ ผ่านอ็อบเจ็กต์นี้ เป็นหนึ่งในหลักสูตรที่จำเป็นสำหรับโปรแกรมเมอร์ JavaScript ทุกคน
นั้นเหมือนกับวัตถุทั่วไป เราสามารถใช้ new Date() เพื่อสร้างวัตถุ Date และเรายังสามารถส่งผ่านพารามิเตอร์การเริ่มต้นบางอย่างในระหว่างการสร้างได้อีกด้วย
โดยไม่มีพารามิเตอร์:
la now = new Date()console.log(now)
ผลลัพธ์การเรียกใช้โค้ดจะเป็นดังนี้:

นี่เป็นเพียงเอาท์พุตเวลาที่กำหนดเมื่อมีการเรียกใช้โค้ด สิ่งที่แสดงที่นี่คือ 2022年6月22日19点25份24秒
สร้างออบเจ็กต์วันที่ด้วยพารามิเตอร์มิลลิวินาที โดยที่ milliseconds อ้างอิงถึงจำนวนมิลลิวินาทีตั้งแต่ UTC+0 ในวันที่ 1 มกราคม 1970 (1 มิลลิวินาที = 1/1000 วินาที)
//สร้างเวลา เช่น 1970.1.1 จุดเวลา 0 มิลลิวินาที ให้ jan01_1970 = วันที่ใหม่ (0) console.log(01_1970) //สร้างเวลาที่ช้ากว่าจุดเวลา 1.1 ในปี 1970 3 วัน (3 วัน * 24 ชั่วโมง * 3600 วินาที * 1,000 มิลลิวินาที) ให้ jan04_1970 = วันที่ใหม่ (3 * 24 * 3600 * 1,000) Console.log(jan04_1970)
ผลลัพธ์การเรียกใช้โค้ด:

milliseconds คือจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่ 00:00:00 น. ของวันที่ 1 มกราคม 1970 หรือเรียกว่า การประทับเวลา
การประทับเวลาคือการแสดงวันที่แบบดิจิทัลอย่างง่าย เรามักจะใช้ new Date(milliseconds) เพื่อสร้างวันที่ หากเรามีวัตถุ Date อยู่แล้ว เราสามารถใช้ date.getTime() เพื่อรับการประทับเวลาที่สอดคล้องกับวันที่
หมายเหตุ:
จีนอยู่ในโซน 8 ดังนั้นเวลาในตัวอย่างข้างต้นไม่ใช่ 00:00:00 น. แต่เป็น 08:00:00 น
การประทับเวลาไม่ได้เป็นเพียงจำนวนเต็มเท่านั้น แต่ยังอาจเป็นจำนวนลบได้ด้วย เช่น:
//1969-12-31 00:00:00let dec31_1969 = new Date(-24 * 3600 * 1000)console.log(dec31_1969)
code ผลการดำเนินการ:

ใช้การประทับเวลาทุกครั้งที่สร้างขึ้น อาจไม่สะดวก เนื่องจากการคำนวณการประทับเวลายังยากอยู่เล็กน้อย
นอกจากนี้เรายังสามารถใช้สตริงเวลาเพื่อสร้างเวลาได้ เช่น:
la date = new Date('2022-06-22 00:00:00') console.log(date) code Execution results:

year —— ต้องเป็นตัวเลขสี่หลัก;month —— [0,11] , 0 หมายถึง1 ;hours/minutes/sec/ms - ค่าเริ่มต้นคือ 0;ตัวอย่างเช่น:
ให้ date = new Date(2022,6,22,20,35,33)console.log(date)
ผลการเรียกใช้โค้ด:

นอกจากนี้เรายังสามารถระบุจำนวนมิลลิวินาทีได้อีกด้วย:
la date = new Date(2022,6,22,20,35,33,777)console.log(date)
ถ้าเรามี Date object เราก็สามารถส่งผ่าน build ได้
-ในเมธอด Date จะได้รับส่วนของเวลา เช่น ปี เดือน วันที่ เป็นต้น
ตัวอย่างเช่น เรามี date :
la date = new Date(2022,5,22,20,35,33)
getFullYear() รับปี date.getFullYear() รับกลับ 2022 ;getMonth() รับ month, date.getMonth() ส่งคืน 5 ซึ่งก็คือ 6 ;getDate() รับวันที่ของเดือนปัจจุบัน date.getDate() ส่งคืน 22 ;getDay() รับวันในสัปดาห์ตามเวลาปัจจุบันเป็น date.getDay() ที่ date.getDay() ส่งคืน 3 ;หมายเหตุ:
- วันที่ข้างต้นทั้งหมดขึ้นอยู่กับวันที่ในท้องถิ่น ตัวอย่างเช่น ฉันอยู่ในเขตเวลาของจีน
- คุณต้องใช้
getFullYearจะส่งคืนปีgetYearเป็นตัวเลขสองหลัก
เรายังสามารถรับเวลาในโซนเวลา 0 ซึ่งก็คือเวลา UTC ซึ่งสอดคล้องกับ getUTCFullYear() และ getUTCMonth() , getUTCDay เป็นต้น เพียงใส่ UTC หลังจาก get .
ตัวอย่างเช่น:
la date = new Date(2022,5,22,20,35,33)console.log(date.getHours(),date.getUTCHours())
ผลลัพธ์การเรียกใช้โค้ด:

ในเวลากลางคืนจะเห็นได้ว่าความแตกต่างระหว่างเขตเวลาของจีนและเขตเวลา 0 คือ 8 ชั่วโมง
getTime() ส่งคืนการประทับเวลาของวันที่ และเมธอดไม่มีโหมด UTCgetTimezoneOffset() ส่งคืนค่าความต่างของเวลาระหว่างโซนเวลาท้องถิ่นและโซนเวลา 0 เป็นนาที และไม่มีโหมด UTCเรายังสามารถตั้งวันที่ด้วยวิธีของวัตถุ Date ส่วนหนึ่งของ:
setFullYear(year, [month], [date]) ตั้งค่าปี (เดือน, วัน)setMonth(month, [date]) ตั้งเดือน (วัน)setDate(date) ตั้งวันที่ (วันของเดือน)setHours(hour, [min], [sec], [ms]) ตั้งชั่วโมง (นาที วินาที มิลลิวินาที)setMinutes(min, [sec], [ms]) ตั้งค่านาที (วินาที มิลลิวินาที)setSeconds(sec, [ms]) ตั้งค่าวินาที (มิลลิวินาที)setMilliseconds(ms) ตั้งค่ามิลลิวินาทีsetTime(milliseconds) (ใช้จำนวนมิลลิวินาทีตั้งแต่ 1970-01-01 00:00:00 UTC+0 เพื่อตั้งค่าวันที่ทั้งหมด)ในบรรดาฟังก์ชันข้างต้น มีเพียง setTime() เท่านั้นที่ไม่มีตัวแปร UTC
Date ของ JavaScript มีฟังก์ชันการปรับเทียบอัตโนมัติ ซึ่งทำให้เราสะดวกในการคำนวณเวลาเป็นอย่างมาก
ตัวอย่างเช่น:
la date = new Date(2022,5,38)//สังเกตผลการดำเนินการของโค้ด 38console.log(date) ที่นี่
:

จากผลการดำเนินการเราจะเห็นว่า "38 มิถุนายน 2565" ไม่ได้ทำให้เกิดข้อผิดพลาดในโปรแกรม แต่แปลงวันที่เป็น "8 กรกฎาคม 2565"
กรณีข้างต้นได้ตรวจสอบแล้วว่าใน JavaScript วันที่นอกช่วงจะถูกกำหนดโดยอัตโนมัติโดยอ็อบเจ็กต์ Date ด้วยวิธีนี้ เราสามารถใช้วัตถุ Date เพื่อคำนวณวันที่ได้อย่างสะดวกมาก
เช่น เราสามารถบวกและลบปี เดือน และวันในวันที่ดังกล่าวได้:
la date = new Date(2022,5,23)//The current time is 2022-6-23date.setDate(date.getDate() + 8)//คำนวณเวลาหลังจากแปดวัน
ผลการเรียกใช้โค้ด console.log(date):

ในทำนองเดียวกัน เรายังสามารถใช้เมธอด date.setSeconds() เพื่อคำนวณวันที่เป็นวินาทีได้ด้วย
และวัน Date จะเหมือนกับค่าที่ส่งคืนของ date.getTime() ซึ่งเป็นค่าในหน่วยมิลลิวินาที:
la date = new Date()console.log(+date)
code ผลการดำเนินการ:

เนื่องจากแก่นแท้ของเวลาคือตัวเลข เราจึงสามารถคำนวณผลต่างของเวลาเป็น ms (มิลลิวินาที) ได้
ตัวอย่างเช่น:
ให้ date1 = new Date(2022,5,23)let date2 = new Date(2022,5,24)console.log(`The timeความแตกต่างคือ ${date2-date1}ms`) ผลการเรียกใช้โค้ดคือ : :

ถ้าเราต้องการทราบเวลาปัจจุบัน วิธีที่ดีกว่าคือใช้เมธอด Date.now() วิธีนี้จะส่งคืนการประทับเวลาของเวลาปัจจุบันโดยไม่ต้องสร้างวัตถุ Date เพิ่มเติม ซึ่งดีสำหรับโอเวอร์เฮดของหน่วยความจำและการรวบรวมขยะ และโค้ดจะง่ายกว่า
ตัวอย่างเช่น:
ให้ start = Date.now()for(let i = 1;i<100000;i++){
ให้ num = i * i * i;}let end = Date.now()console.log(`consume time ${end - beginning}ms`) ผลการรันโค้ด:

เมธอด Date.parse() สามารถอ่านสตริงวันที่และแปลงเป็นการประทับเวลาได้ แต่สตริงจะต้องเป็นไปตามกฎบางอย่าง: YYYY-MM-DDTHH:mm:ss.sssZ
YYYY-MM-DD สอดคล้องกับ年-月-日T อยู่ในตัวคั่นHH:mm:ss.sss สอดคล้องกับ时:分:秒.毫秒Z สามารถเป็นเขตเวลาในรูปแบบ +-hh:mm อักขระ Z ตัวเดียวแสดง UTC+0สตริง UTC+0 ที่สามารถเขียนในรูปแบบย่อ เช่น: YYYY-MM-DD , YYYY-MM , YYYY
เพื่อให้เคล็ดลับเล็กๆ น้อยๆ แก่คุณ:
ให้ ms = Date.parse('2022-06-23T19:38:30.777+08:00')//Time stamp la date = new Date(ms)console.log(date) code Execution ผลลัพธ์:

JavaScript วัตถุ Date เพื่อประมวลผลเวลา: new Date() ;Date มีวิธีการปฏิบัติมากมายและเราจะได้รับช่วงระยะเวลาหนึ่งDate จะถูกปรับเทียบโดยอัตโนมัติและเราสามารถทำได้ เพิ่มและลบวันที่โดยตรงDate.now() สามารถรับเวลาปัจจุบันได้อย่างมีประสิทธิภาพ