Ngày tháng trong JavaScript

Tram Ho

1. Khởi tạo Date Object

Mặc dù chỉ gọi là Date (ngày), nhưng nó đã bao gồm luôn các API về thời gian

// Ngày giờ hiện tại

// nếu truyền vào 0, chúng ta có giá trị Jan 1st 1970 (UTC)

UNIX timestamp là giá trị bằng số ( tính đến giây) của Date

LƯU Ý: UNIX timestamp tính theo giây. Date của JavaScript tính theo milli giây

Nếu có giá trị UNIX timestamp, khởi tạo một Date Object bằng cách nhân với 1000

Nếu truyền vào một string, thay vì number, gọi Date(string) sẽ parse giá trị đó, hay ho là ở chỗ nó tự đoán mò xem string truyền vào đang theo định dạng nào.

Việc này có một nguy hiểm, thứ tự ngày tháng có thể không đúng như chúng ta mong đợi.

Tốt nhất là cứ theo chuẩn quốc tế ISO 8601, string dạng thế này

Điểm lưu ý duy nhất của string này là chữ Z cuối cùng, nó đại diện cho UTC, nếu không có, tức là đang dùng giờ địa phương.

Dùng Date.parse, sẽ trả về timestamp (milli giây)

Hoặc là truyền theo dạng năm, tháng (từ 0), ngày, giờ, phút, giây, mili giây

2. Timezone – Khu vực

Khi khởi tạo một giá trị ngày giờ chúng ta có thể truyền thêm tham số timezone, nếu không muốn dùng UTC

// bằng cách thêm +HOURS

// bằng cách thêm tên , ICT gồm Campuchia, Lào, Thái Lan, Việt Nam

Nếu truyền sai giá trị timezone, javascript sẽ dùng UTC, không quăng lỗi. Nếu giá trị date đưa vào sai, xảy ra lỗi ‘Invalid Date’

3. Convert và Format kiểu Date

Với một Date object, chúng ta có khá nhiều lựa chọn để chuyển giá trị Date => string

4.Các phương thức của Date Object để lấy giá trị

Các phương thức trên sẽ có thêm phiên bản UTC, trả về giá trị UTC không phụ thuộc vào giá trị timezone hiện tại

5. Thay đổi giá trị

Các phương thức để cập nhập lại giá trị của Date

Lưu ý, nếu ta dùng date.setHours(48) sẽ vẫn ok, nó sẽ tự động cộng lên thành một ngày mới, tương tự cho setMinutes, setSeconds

Với setHours() chúng ta có thể truyền tham số kiểu setHours(0,0,0,0) để cập nhập giờ-phút-giây-mili giây.

Phiên bản UTC

6. Lấy giá trị timestamp hiện tại

Nếu muốn lấy timestamp hiện tại (mili giây)

7. Javascript tự động cộng thêm giá trị ngày giờ

Nếu chúng ta đưa vào giá trị ngày lớn hơn 31, javascript sẽ cộng lên thành tháng tiếp theo, chứ không báo lỗi (không rõ là nên vui hay buồn với tính năng này)

8. Định dạng ngày giờ theo vùng miền

Nếu trình duyệt hỗ trợ Intl, ta có thể sử dụng để bản địa hóa các giá trị number, string, currencies, date

9. So sánh 2 giá trị ngày giờ

Sử dụng Date.getTime() để tính toán sự giá trị ngày tháng, chính xác tới mili giây nhé

Kiểm tra 2 giá trị Date có bằng nhau không

Lưu ý là đang so sánh đến mili giây, nên nếu so sánh 2 giá trị July 10, 2018 07:22:13 và July 10, 2018 thì nó sẽ không bằng nhau nhaa


Source: https://css-tricks.com/everything-you-need-to-know-about-date-in-javascript/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo