JavaScript วันและเวลา
ใช้ class ชื่อ Date เป็นตัวจัดการกับวันที่และเวลา
สร้างออปเจ็ค Date ด้วย constructor
let now = new Date(); //วันและเวลาปัจจุบัน
let epoch = new Date(0); //วันและเวลาเป็น milisecond จาก unix epoch (Midnight, January 1st, 1970, GMT)
let century = new Date(2100, // ปี ค.ศ. 2100
0, // มกราคม
1, // วันที่หนึ่ง
2, 3, 4, 5); // 02:03:04.005, เวลาท้องถิ่น
เดือนแรกของปีจะเป็นเดือน 0 แต่วันแรกของปีจะเป็นวันที่ 1
ถ้าไม่ใส่เวลาค่าจะกลายเป็นศูนย์ซึ่งเท่ากับเที่ยงคืนของวันนั้นๆ
สร้างวันและเวลาตามรูปแบบมาตรฐานสากล UTC (Universal Time, Coordinated)
let century = new Date(Date.UTC(2100, 0, 1)); //เที่ยงคืนวันที่ 1 มกราคม 2100
console.log(century)// =Fri Jan 01 2100 02:03:04 GMT+0700 (Indochina Time)
console.log(century.toUTCString()) //=Thu, 31 Dec 2099 19:03:04 GMT
console.log(century.toISOString()) //=2100-01-01T00:00:00.000Z
สร้างจาก string
let century = new Date("2100-01-01T00:00:00Z");
let century = new Date('Fri Jan 01 2100 07:00:00 GMT+0700 (Indochina Time)');
let century = new Date('Fri Jan 01 2100 07:00:00 GMT+0700');
let century = Date.parse('Fri Jan 01 2100 07:00:00 GMT+0700'); //=4102444800000
Method ของ class Date:
- getFullYear()
- getUTCFullYear()
- setFullYear()
- setUTCFullYear()
setFullYear(yearValue, monthValue, dateValue) สามารถระบุเดือนและวันได้ด้วย
setHours(hoursValue, minutesValue, secondsValue, msValue) สามารถระบุส่วนอื่นๆของเวลาได้
getDay() ค่าที่ได้จะเป็น 0-6 แทนวันอาทิตย์ถึงเสาร์ อ่านได้อย่างเดียว setDay() ไม่มี
Timestamps
High-Resolution Timestamps
การคำนวณวันที่และเวลา
สามารถใช้เครื่องหมายเปรียบเทียบ < , <= , > , >= ได้ สามารถนำวันที่มาบอกลบกันได้ ค่าที่ได้จะเป็น integer มีหน่วยเป็น milisecond การคำนวณจะใช้ค่าจาก Method valueOf() ที่คืนค่าเป็น milisecond
ส่วนใหญ่การคำนวนในหน่วยวันเดือนปี การใช้ Function จะสะดวกกว่าการคำนวณเป็น milisecond
let d = new Date();
d.setMonth(d.getMonth() + 3, d.getDate() + 14); //บวกวันเพิ่มไปสามเดือนกับสองอาทิตย์
การตั้งรูปแบบการแสดงผล
let d = new Date(2020, 0, 1, 17, 10, 30); // 5:10:30pm on New Year's Day 2020
d.toString() // => "Wed Jan 01 2020 17:10:30 GMT-0800 (Pacific Standard Time)"
d.toUTCString() // => "Thu, 02 Jan 2020 01:10:30 GMT"
d.toLocaleDateString() // => "1/1/2020": 'en-US' locale
d.toLocaleTimeString() // => "5:10:30 PM": 'en-US' locale
d.toISOString() // => "2020-01-02T01:10:30.000Z"
Comments
Post a Comment