Xử lý ngày giờ trong javascript

Xử lý ngày giờ trong javascript bao gồm những việc như tạo, các biến, định dạng, tính toán trên các giá trị thuộc kiểu thời gian (ngày/giờ).

A. Các cách tạo ngày trong javascript

1. Tạo đối tượng Date chứa thời điểm hiện tại

Đơn giản với lệnh new Date(), đối tượng d như ví dụ dưới sẽ chứa đầy đủ thông tin của thời điểm hiện tại với năm tháng ngày, giờ phút giây…

<script>
 var d = new Date();//chứa ngày tháng năm giờ phút giây hiện tại
 console.log(d); //Tue May 04 2021 13:54:55 GMT+0700 (Indochina Time)
</script>

2. Tạo ngày với timestamp của 1 thời điểm nào đó

Timestamp là 1 số nguyên (tính bằng giây) kể từ giây đầu tiên của năm 1970 đến 1 thời điểm nào đó. Giá trị timestamp diễn tả thời gian như thế rất có lơi trong lập trình vì bạn rất dễ dàng cộng thêm (sẽ được 1 thời điểm trong tương lai) hay trừ bớt thời gian (1 thời điểm trong quá khứ)

Để tạo ngày bằng 1 giá trị timestamp, bạn cứ truyền giá trị vào khi tạo, xem ví dụ sau sẽ biết:

<script>
 var d = new Date(1621002011800); //chứa ngày tháng năm giờ phút giây của thời điểm ứng với timestamp
 console.log(d); //Fri May 14 2021 21:20:11 GMT+0700 (Indochina Time)
 </script>

3. Tạo ngày với chuỗi thời gian yyyy-MM-dd

Bạn xem ví dụ sau sẽ biết cách tạo ngày

<script>
   var d = new Date("2021-05-10 7:30:0");
   console.log(d); //Mon May 10 2021 07:30:00 GMT+0700 (Indochina Time)
</script>

4. Tạo đối tượng ngày với các giá trị thời gian chỉ ra

Diễn tả thời gian bằng các giá trị riêng lẻ của năm, tháng, ngày, giờ,…Xem ví dụ sau:

<script>
 var d = new Date(2021,4,10, 15,6,12);
 console.log(d); //Mon May 10 2021 15:06:12 GMT+0700 (Indochina Time)
</script>

5. Tạo ngày với dạng ISO

Có thể tạo ngày bằng cách diễn tả YYYY-MM-DD hoặc YYYY-MM hoặc YYYY

<script>
 var d = new Date("2021"); // trả về ngày 1/1/2021
 console.log(d); //Fri Jan 01 2021 07:00:00 GMT+0700 (Indochina Time)
 var d = new Date("2021-05"); // trả về ngày 1 tháng 5 năm 2021
 console.log(d); //Sat May 01 2021 07:00:00 GMT+0700 (Indochina Time)
 var d = new Date("2021-05-04");
 console.log(d); //Tue May 04 2021 07:00:00 GMT+0700 (Indochina Time)
</script>

6. Tạo ngày với cú pháp LONG

Có thể tạo ngày bằng cách diễn tả theo  cú pháp LONG , trong đó tên tháng bằng chữ 3 ký tự

<script>
 var d = new Date("May 04 2021"); 
 console.log(d); //Tue May 04 2021 00:00:00 GMT+0700 (Indochina Time)
</script> 

7. Tạo ngày với cú pháp SHORT

Có thể tạo ngày bằng cách diễn tã theo cú pháp SHORT với 4 dạng MM/DD/YYYY ,  MM-DD-YYYY , YYYY/MM/DD , YYYY-MM-DD

<script>
var d = new Date("05/04/2021"); 
console.log(d); //Tue May 04 2021 00:00:00 GMT+0700 (Indochina Time)
var d = new Date("05-04-2021"); 
console.log(d); //Tue May 04 2021 00:00:00 GMT+0700 (Indochina Time)
var d = new Date("2021/05/04"); 
console.log(d); //Tue May 04 2021 00:00:00 GMT+0700 (Indochina Time)
var d = new Date("2021-05-04"); 
console.log(d); //Tue May 04 2021 07:00:00 GMT+0700 (Indochina Time)
</script>

B. Lấy timestamp của 1 ngày

Dùng hàm parse, bạn sẽ có timestamp của 1 thời điểm chỉ ra.

<script>
 var d = Date.parse("2021-05-04");
 console.log(d); //1620086400000
</scriptàm

C. Các hàm trong đối tượng Date

Phần A hướng dẫn bạn cách tạo ngày, khi đã có đối tượng ngày, bạn có thể gán lại giá trị mới cho nó hoặc từ đối tượng ngày có thể lấy riêng ra năm, tháng, ngày, giờ, phút, giây cho các mục đích sử dụng khác nhau.

các hàm trong đối tượng date
các hàm trong đối tượng date

Tạo ngày bằng hàm setFullYear() của đối tượng ngày

 <script>
 var d = new Date(); 
 d.setFullYear(2021, 5, 10);
 console.log(d); //Thu Jun 10 2021 15:50:54 GMT+0700 (Indochina Time)
</script> 

Lấy ngày bằng hàm getDate()

Lấy thông tin 50 ngày tiếp theo bằng phương thức getDate()

 <script>
 var d = new Date(); 
 console.log(d);//Tue May 04 2021 15:55:13 GMT+0700 (Indochina Time)
 d.setDate(d.getDate() + 50);
 console.log(d); //Wed Jun 23 2021 15:55:13 GMT+0700 (Indochina Time)
</script> 

Trên đây là một vài hàm liên quan đến xử lý ngày giờ trong javascript, ngoài cách dùng cá hàm như trên, cũng có thể sử dụng thư viên moment để xử lý nếu bạn muốn.

Có thể tham khảo thêm ở link https://www.w3schools.com/jsref/jsref_obj_date.asp