Trong bài viết này, ta sẽ cùng tìm hiểu về ngày và thời gian trong JavaScript cùng với sự trợ giúp của các ví dụ dẫn chứng.
Ngày và thời gian trong JavaScript
Trong JavaScript, ngày và thời gian được biểu thị bằng đối tượng Date. Đối tượng Date cung cấp thông tin ngày giờ và nhiều phương thức khác nhau.
Tạo đối tượng Date
Có bốn cách để tạo đối tượng Date.
- new Date().
- new Date(thời gian – tính theo mili giây).
- new Date(chuỗi ký tự).
- new Date(năm, tháng, ngày, giờ, phút, giây, mili giây).
1. Hàm new Date()
Ta có thể tạo một đối tượng ngày tháng bằng cách sử dụng hàm tạo Date().
Ví dụ:
1 2 |
const a = new Date(); console.log(a); |
Ở đây, new Date() tạo một đối tượng thời gian với ngày hiện tại và giờ tại địa phương.
2. Hàm new Date(mili giây)
Đối tượng Date chứa một số đại diện cho số mili giây kể từ ngày 1 tháng 1 năm 1970 UTC. Hàm new Date (mili giây) tạo một đối tượng Date bằng cách thêm số mili giây vào thời gian bắt đầu.
Ví dụ:
1 2 3 4 |
const a = new Date(0); console.log(a); const b = new Date(23000000000) console.log(b); |
Chú ý: 1000 mili giây tương đương với 1 giây.
3. Hàm new Date(chuỗi ký tự)
Hàm new Date(chuỗi ký tự) tạo một đối tượng ngày từ một chuỗi ký tự. Trong JavaScript, thường có ba định dạng cho thời gian ngày tháng.
Định dạng ngày ISO
Ta có thể tạo đối tượng ngày tháng bằng cách chuyển các định dạng ngày tháng theo ISO.
Ví dụ:
1 2 |
const a = new Date("2018-12-01"); console.log(a); |
Ta cũng có thể chỉ truyền giá trị năm và tháng hoặc chỉ năm.
Ví dụ:
1 2 3 4 |
const a = new Date("2017-12"); console.log(a); const b = new Date("2020"); console.log(b); |
Chú ý: Ngày và giờ được phân tách bằng chữ viết hoa T. Và giờ UTC được xác định bằng chữ Z viết hoa.
Ví dụ:
1 2 |
const a = new Date("2018-05-01T12:00:00Z"); console.log(a); |
Định dạng ngày khác
Có hai định dạng ngày khác nhau được thể hiện như sau.
1 2 3 4 5 6 7 8 9 10 |
const a = new Date("06/12/2018"); console.log(a); const b = new Date("Jul 5 2016"); console.log(b); const c = new Date("9 Jul 2016"); console.log(c); const d = new Date("July 7 2020"); console.log(d); const e = new Date("JULY, 9, 2019"); console.log(e); |
4. Hàm new Date(năm, tháng, ngày, giờ, phút, giây, mili giây)
Ví dụ:
1 2 |
const a = new Date(2019, 2, 20, 7, 12, 12, 0); console.log(a); |
Kết quả:
1 |
2019-03-20T07:12:12.000Z |
Đối số được truyền có một thứ tự nhất định. Nếu bốn số được truyền, nó đại diện cho năm, tháng, ngày và giờ.
Ví dụ:
1 2 |
const a = new Date(2019, 3, 19, 4); console.log(a); |
Kết quả:
1 |
2019-04-19T04:00:00.000Z |
Tương tự, nếu hai đối số được truyền, nó đại diện cho năm và tháng.
Ví dụ:
1 2 |
const a = new Date(2019, 3); console.log(a); |
Kết quả:
1 |
2019-04-01T00:00:00.000Z |
Chú ý: Nếu ta chỉ truyền một đối số, nó được xét là số mili giây. Do đó, ta phải truyền hai đối số.
Chú ý 2: Trong JavaScript, các tháng được tính từ 0 đến 11. Tháng 1 là giá trị 0 và tháng 12 có giá trị là 11.
Các phương thức làm việc với thời gian trong JavaScript
Phương thức | Mô tả |
now() | Trả về giá trị số tương ứng với thời gian hiện tại (Số mili giây trôi qua tính từ ngày 1 tháng 1, 1970 00:00:00 UTC. |
getFullYear() | Trả về năm tương ứng với thời gian tại địa phương. |
getMonth() | Lấy số tháng, từ 0 tới 11 theo thời gian tại địa phương. |
getDate() | Lấy ngày trong tháng (1 – 31) theo thời gian tại địa phương |
getDay() | Lấy ngày trong tuần (0-6) tương ứng với thời gian tại địa phương. |
getHours() | Lấy số giờ từ 0 tới 23 tương ứng với thời gian tại địa phương. |
getMinutes | Lấy số phút từ 0 tới 59 tương ứng với thời gian tại địa phương. |
getUTCDate() | Lấy ngày trong tháng (1–31) ứng với thời gian toàn cầu. |
setFullYear() | Đặt giá trị năm theo thời gian tại địa phương. |
setMonth() | Đặt giá trị tháng theo thời gian tại địa phương. |
setDate() | Đặt giá trị ngày trong tháng theo thời gian tại địa phương. |
setUTCDate() | Đặt giá trị ngày trong tháng theo thời gian toàn cầu. |
Ví dụ:
1 2 3 4 5 6 7 8 9 |
const timeNow = Date.now(); console.log(timeNow); const a = new Date; const date = a.getDate(); console.log(date); const year = a.getFullYear(); console.log(year); const utcDate = a.getUTCDate(); console.log(utcDate); |
Kết quả:
1 2 3 4 |
1612072656981 31 2021 31 |
Định dạng ngày
Không giống như các ngôn ngữ lập trình khác, JavaScript không cung cấp các hàm tích hợp sẵn để định dạng ngày tháng. Tuy nhiên, ta có thể định dạng thời gian theo ý của mình như trong ví dụ bên dưới.
Ví dụ:
1 2 3 4 5 6 |
const a = new Date(); const ngay = a.getDate(); const thang = a.getMonth(); const nam = a.getFullYear(); let b = ngay + '/' + (thang + 1) + '/' + nam; console.log(b); |
Kết quả:
1 |
31/1/2021 |
Tự động sửa giá trị của đối tượng Date
Khi ta chỉ định các giá trị ngoài phạm vi trong đối tượng Date, nó sẽ tự động tự sửa giá trị.
Ví dụ:
1 2 |
const a = new Date(2016, 1, 32); console.log(a); |
Kết quả:
1 |
2016-03-03T00:00:00.000Z |
Trên đây là khái niệm và ví dụ cơ bản về ngày và thời gian trong JavaScript. Hy vọng mọi người có thể áp dụng vào trong chương trình của mình. Mọi người hãy tiếp tục theo dõi các bài tiếp theo và cập nhật các bài tiếp theo về lập trình JavaScript trên tek4 nhé!
P/s: Cảm ơn mọi người đã tin tưởng tek4!