การได้ JavaScript timestamp format ทำได้ด้วย Date() object ซึ่งเก็บเวลาปัจจุบันในรูปแบบ timestamp ที่อ่านง่าย คุณยังสร้าง Date() objects ใหม่กับ timestamps ต่างๆ และได้ Unix time ปัจจุบันด้วย getTime() method
การจัดการ dates และ times เป็นส่วนสำคัญของการเขียนโปรแกรม ใน JavaScript ตัวอย่างเช่น คุณอาจต้องสร้าง dynamic copyright date, schedule, หรือลิสต์ events และเวลาของพวกมัน ซึ่งทั้งหมดเกี่ยวข้องกับเวลา/วันที่
เพื่อทำงานกับเวลาใน JavaScript คุณสามารถใช้ Date object และ methods ที่เกี่ยวข้อง Date object อนุญาตให้เก็บวันที่และเวลา และ format วันที่เวลาตามความต้องการเฉพาะ
ในบทช่วยสอนนี้ เราจะสำรวจ basics ของการสร้าง JavaScript timestamp ด้วย Date จะอภิปรายวิธี format date และ timestamps ใน JavaScript และวิธีได้ UTC time values
JavaScript Timestamp Object
Date object ใช้ใน JavaScript เก็บวันที่และเวลา โดยไม่มี arguments Date object จะสร้าง object พร้อม current date และ time ตัวอย่าง Date object ใช้ได้ current date และ time:
const currentTime = new Date(); console.log(currentTime);
ในโค้ดเรา ประกาศ variable "currentTime" assign Date object แล้วพิมพ์ "currentTime" ไปที่ console โค้ดคืนค่า:
Wed Feb 05 2020 11:18:21 GMT+0000 (Greenwich Mean Time)
เห็นได้ว่าโค้ดคืนค่า current date และ time ในรูปแบบอ่านได้ เราแยกผลลัพธ์ของ Date object ได้เป็น components:
81% of participants stated they felt more confident about their tech job prospects after attending a bootcamp. Get matched to a bootcamp today.
The average bootcamp grad spent less than six months in career transition, from starting a bootcamp to finding their first job.
- Day: Wed
- Month: Feb
- Day: 14
- Year: 2020
- Hour: 11
- Minute: 18
- Second: 21
- Time Zone: GMT+000 (Greenwich Mean Time)
อย่างไรก็ตาม แม้ date object จะคืนค่านี้ JavaScript เข้าใจ dates และ times ผ่าน Unix time Unix time คือค่าที่แทนจำนวน milliseconds ที่ผ่านไปตั้งแต่เที่ยงคืน January 1, 1970 เป็น universal standard สำหรับเก็บเวลาในการเขียนโปรแกรม
ถ้าอยากได้ Unix JavaScript timestamp ทำได้ด้วย getTime() method แบบนี้:
console.log(currentTime.getTime());
โค้ดคืนค่า: 1580901774643 เลขนี้ดูไม่น่าสนใจเท่าข้อมูลด้านบน แต่หมายความเหมือนกัน
สร้าง New Date Objects จาก Existing Timestamps
จนถึงตอนนี้ เราพูดถึงการสร้าง Date object จาก current time แต่เราสามารถสร้าง Date object จาก existing JavaScript timestamp ได้ด้วย
มีประโยชน์ถ้าคุณมี date value แล้วแต่อยาก manipulate ด้วย JS Date object ตัวอย่าง คุณอาจมี Unix timestamp อยากให้ปรากฏใน long-form version ของเวลาที่แสดงด้านบน (แสดง day, time, timezone, และข้อมูลที่เกี่ยวข้อง)
คุณสร้าง new Date object จาก existing timestamp ได้สองสามวิธี ใช้ Date สร้าง object ใหม่จาก:
- Existing Unix timestamp (new Date(timestamp))
- Date string (new Date(date string))
- Specific date และ time (new Date(year, month, day, hours, minutes, seconds, milliseconds))
ตัวอย่างแต่ละ method ในการทำงาน:
new Date(9231925020);
new Date("April 17 1970 21:25:25");
new Date(1970, 3, 17, 21, 25, 25, 0);
แต่ละตัวอย่างสร้าง Date object ด้วยข้อมูลเดียวกัน ดังนั้นถ้าเราพิมพ์เวลาด้วย date objects ใดๆ และ getTime() function เหมือนก่อนหน้า เราจะได้ response นี้:
Fri Apr 17 1970 21:25:25 GMT+0100 (Greenwich Mean Time)
ควรทราบว่าใน method สุดท้าย - ที่ระบุ year, month, day, hours, minutes, seconds, milliseconds - ค่าที่ขาดจะถูกตั้งเป็น 0 นอกจากนี้ month ของเราตั้งเป็น "3" เพราะ JavaScript Date object นับจาก "0" สำหรับ months
การดึงข้อมูลวันที่ (Retrieving the Date)
ตอนนี้เรามี Date object เราสามารถดึงส่วนใดส่วนหนึ่งของวันที่หรือเวลาที่ต้องการ เราใช้ get methods ใน JavaScript คืนค่าส่วนบางส่วนของ date relative to local timezone นี่คือ date methods ที่ใช้ดึง date:
- Year: getFullYear()
- Month: getMonth()
- Day of the Month: getDate()
- Day of the Week: getDay()
- Hour: getHours()
- Minute: getMinutes()
- Second: getSeconds()
- Millisecond: getMilliseconds()
ลองสร้าง new date object สำหรับ January 1st, 2020:
const january2020 = new Date(2020, 1, 1);
ตอนนี้ถ้าเราใช้ methods ด้านบนได้ year, month, และ day of the month จะได้:
january2020.getFullYear(); // 1980 january2020.getMonth(); 1 january2020.getDate(); 1
เราสามารถรัน date methods ที่พูดถึงก่อนหน้านี้บน timestamp ได้เพื่อดึงส่วนเฉพาะของเวลา
นอกจากนี้ เราใช้ Date object เปรียบเทียบเวลาใน JavaScript ได้ สมมติอยากเช็คว่าปี 2020 หรือไม่ ใช้โค้ดนี้:
const currentDate = new Date(); if (currentDate.getFullYear() === 2020) { console.log("It's 2020!"); } else { console.log("It's not 2020!"); }
เพราะเป็นปี 2020 ตอนเขียนบทความ โค้ดคืนค่า: "It's 2020!" เรายังทำ advanced comparison methods ได้ เช่น เปรียบเทียบปีและวันด้วย approach เดียวกัน
UTC Methods
ค่าที่คืนจาก date retrieval functions ที่พูดถึงข้างบน จะคำนวณจาก local timezone settings ของคุณ ถ้าอยากได้ UTC timestamps - ซึ่งคำนวณเวลาจาก Coordinated Universal Time - ควรเพิ่ม "UTC" หลังคำ "get" ใน functions ด้านบน
ตัวอย่าง getHours() และ getUTCHours() methods ใช้ได้ current hour และ hour ใน UTC timezone:
const currentDate = new Date(); console.log(currentDate.getHours()); console.log(currentDate.getUTCHours());
โค้ดคืนค่า:
11
11
โค้ดพิมพ์ทั้ง hour ใน timezone ปัจจุบัน และ hour ของ UTC timezone ถ้าคุณอยู่ใน UTC ตอนนี้ ตัวเลขจะเหมือนกัน (เหมือนด้านบน)
ใช้ UTC มีประโยชน์เพราะเป็น internationally-accepted standard บ่อยครั้งใช้ตอนสร้างเว็บไซต์หรือแอปที่พึ่งพา multiple timezones
สรุป
เวลาเป็นส่วนสำคัญของ JavaScript ที่คุณน่าจะเจอบ่อยตอนเขียนโค้ด ในบทช่วยสอนนี้ เราอภิปรายวิธีสร้าง Date object เก็บเวลาปัจจุบัน เรายังอภิปรายวิธีสร้าง custom Date objects จาก timestamps, date strings, และ specific times และสำรวจ built-in date retrieval methods ใน JavaScript
ตอนนี้คุณพร้อมดึงและจัดการ timestamps ใน JavaScript แบบมืออาชีพแล้ว!