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
1 2 | <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
// nếu truyền vào 0, chúng ta có giá trị Jan 1st 1970 (UTC)
1 2 | <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
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
1 2 3 | <span class="token keyword">const</span> timestamp <span class="token operator">=</span> <span class="token number">1530826362</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span>timestamp <span class="token operator">*</span> <span class="token number">1000</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020-07-21"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020-07"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//July 1st 2020, 00:00:00</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Jan 1st 2020, 00:00:00</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"07/22/2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020/07/22"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020/7/22"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020-07-22 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020-07-22T07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"25 March 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"25 Mar 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"25 March, 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"March 25, 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"March 25 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"March 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Mar 1st 2020, 00:00:00</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020 March"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Mar 1st 2020, 00:00:00</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020 MARCH"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Mar 1st 2020, 00:00:00</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"2020 march"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Mar 1st 2020, 00:00:00</span> |
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
1 2 | <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">YYYY-MM-DDTHH:mm:ss:sssZ</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span> |
Đ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)
1 2 3 4 5 6 7 8 9 10 11 | Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"2020-07-22"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"2020-07"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//July 1st 2020, 00:00:00</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Jan 1st 2020, 00:00:00</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"07/22/2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"2020/07/22"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"2020/7/22"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"2020-07-22 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Date<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">"2020-07-22T07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
Hoặc là truyền theo dạng năm, tháng (từ 0), ngày, giờ, phút, giây, mili giây
1 2 3 | <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">2020</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">22</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">22</span><span class="token punctuation">,</span> <span class="token number">13</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">2020</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">22</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
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
1 2 | <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2018 07:22:13 +0700"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
// bằng cách thêm tên , ICT gồm Campuchia, Lào, Thái Lan, Việt Nam
1 2 | <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13 (ICT)"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <span class="token keyword">const</span> date <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// "Sun Jul 22 2020 07:22:13 GMT+0200 (Central European Summer Time)"</span> date<span class="token punctuation">.</span><span class="token function">toTimeString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"07:22:13 GMT+0200 (Central European Summer Time)"</span> date<span class="token punctuation">.</span><span class="token function">toUTCString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"Sun, 22 Jul 2020 05:22:13 GMT"</span> date<span class="token punctuation">.</span><span class="token function">toDateString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"Sun Jul 22 2020"</span> date<span class="token punctuation">.</span><span class="token function">toISOString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"2018-07-22T05:22:13.000Z" (ISO 8601 format)</span> date<span class="token punctuation">.</span><span class="token function">toLocaleString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"22/07/2020, 07:22:13"</span> date<span class="token punctuation">.</span><span class="token function">toLocaleTimeString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"07:22:13"</span> date<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
4.Các phương thức của Date Object để lấy giá trị
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <span class="token keyword">const</span> date <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2018 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">getDate</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//22</span> date<span class="token punctuation">.</span><span class="token function">getDay</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//0 (0 là chủ nhật, 1 là thứ 2..)</span> date<span class="token punctuation">.</span><span class="token function">getFullYear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//2018</span> date<span class="token punctuation">.</span><span class="token function">getMonth</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//6 (Bắt đầu từ 0)</span> date<span class="token punctuation">.</span><span class="token function">getHours</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//7</span> date<span class="token punctuation">.</span><span class="token function">getMinutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//22</span> date<span class="token punctuation">.</span><span class="token function">getSeconds</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//13</span> date<span class="token punctuation">.</span><span class="token function">getMilliseconds</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//0 (không xác định)</span> date<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//1532236933000</span> date<span class="token punctuation">.</span><span class="token function">getTimezoneOffset</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//-120 (Tùy theo khu vực và vùng miền).</span> |
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
1 2 3 4 5 6 7 8 9 | date<span class="token punctuation">.</span><span class="token function">getUTCDate</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//22</span> date<span class="token punctuation">.</span><span class="token function">getUTCDay</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//0 (0 means sunday, 1 means monday..)</span> date<span class="token punctuation">.</span><span class="token function">getUTCFullYear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//2018</span> date<span class="token punctuation">.</span><span class="token function">getUTCMonth</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//6 (starts from 0)</span> date<span class="token punctuation">.</span><span class="token function">getUTCHours</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//5 (not 7 like above)</span> date<span class="token punctuation">.</span><span class="token function">getUTCMinutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//22</span> date<span class="token punctuation">.</span><span class="token function">getUTCSeconds</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//13</span> date<span class="token punctuation">.</span><span class="token function">getUTCMilliseconds</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//0 (not specified)</span> |
5. Thay đổi giá trị
Các phương thức để cập nhập lại giá trị của Date
1 2 3 4 5 6 7 8 9 10 11 12 13 | <span class="token keyword">const</span> date <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setDate</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setDay</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setFullYear</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//note: đừng dùng setYear(), bỏ rồi</span> date<span class="token punctuation">.</span><span class="token function">setMonth</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setHours</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setMinutes</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setSeconds</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setMilliseconds</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setTime</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setTimezoneOffset</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> |
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
1 2 3 4 5 6 7 8 9 10 11 | <span class="token keyword">const</span> date <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCDate</span><span class="token punctuation">(</span>newalue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCDay</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCFullYear</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCMonth</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCHours</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCMinutes</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCSeconds</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> date<span class="token punctuation">.</span><span class="token function">setUTCMilliseconds</span><span class="token punctuation">(</span>newValue<span class="token punctuation">)</span><span class="token punctuation">;</span> |
6. Lấy giá trị timestamp hiện tại
Nếu muốn lấy timestamp hiện tại (mili giây)
1 2 3 4 | Date<span class="token punctuation">.</span><span class="token function">now</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// tương tự như viết</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
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)
1 2 3 | <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">2018</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">40</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Thu Aug 09 2020 00:00:00 GMT+0200</span> |
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
1 2 3 4 5 6 7 8 | <span class="token comment">// "12/22/2020"</span> <span class="token keyword">const</span> date <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Intl<span class="token punctuation">.</span>DateTimeFormat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span>date<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// định dạng kiểu Mỹ</span> <span class="token keyword">new</span> <span class="token class-name">Intl<span class="token punctuation">.</span>DateTimeFormat</span><span class="token punctuation">(</span><span class="token string">"en-US"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span>date<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"7/22/2020"</span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <span class="token comment">// đưa thêm option để customize lại output</span> <span class="token keyword">const</span> options <span class="token operator">=</span> <span class="token punctuation">{</span> year<span class="token operator">:</span> <span class="token string">"numeric"</span><span class="token punctuation">,</span> month<span class="token operator">:</span> <span class="token string">"numeric"</span><span class="token punctuation">,</span> day<span class="token operator">:</span> <span class="token string">"numeric"</span><span class="token punctuation">,</span> hour<span class="token operator">:</span> <span class="token string">"numeric"</span><span class="token punctuation">,</span> minute<span class="token operator">:</span> <span class="token string">"numeric"</span><span class="token punctuation">,</span> second<span class="token operator">:</span> <span class="token string">"numeric"</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Intl<span class="token punctuation">.</span>DateTimeFormat</span><span class="token punctuation">(</span><span class="token string">"en-US"</span><span class="token punctuation">,</span> options<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span>date<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"7/22/2020, 7:22:13 AM"</span> <span class="token keyword">new</span> <span class="token class-name">Intl<span class="token punctuation">.</span>DateTimeFormat</span><span class="token punctuation">(</span><span class="token string">"it-IT"</span><span class="token punctuation">,</span> options2<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span>date<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//"22/7/2020, 07:22:13"</span> |
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é
1 2 3 4 | <span class="token keyword">const</span> date1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 10, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> date2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 22, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> diff <span class="token operator">=</span> date2<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> date1<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
Kiểm tra 2 giá trị Date có bằng nhau không
1 2 3 4 5 6 | <span class="token keyword">const</span> date1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 10, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> date2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token string">"July 10, 2020 07:22:13"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>date2<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">===</span> date1<span class="token punctuation">.</span><span class="token function">getTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">//dates are equal</span> <span class="token punctuation">}</span> |
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/