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ờ).


Xử lý ngày giờ trong javascript

Tạo ngày với thời điểm hiện tại

Đơn giản với lệnh new Date(), lệnh trả về 1 đối tượng 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>

Tạo ngày với timestamp

Timestamp là 1 số nguyên (tính bằng giây) kể từ đầu 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ì rất dễ dàng cộng thêm (được 1 thời điểm tương lai) hay trừ bớt (được 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); 
//d chứa ngày tháng năm giờ phút giây của thời điểm chỉ ra
console.log(d); //Fri May 14 2021 21:20:11 GMT+0700 
</script>

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 theo kiểu này

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

Tạo 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 
</script>

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>
 d = new Date("2021"); // trả về ngày 1/1/2021
 console.log(d); //Fri Jan 01 2021 07:00:00 GMT+0700 

 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 

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

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, 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 
</script> 

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

Lấy timestamp của 1 ngày

Dùng hàm Date.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 hàm trong đối tượng Date

Phần trên 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 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

Gán ngày bằng hàm setFullYear()

<script>
 var d = new Date(); 
 d.setFullYear(2021, 5, 10);
 console.log(d); //Thu Jun 10 2021 15:50:54 GMT+0700 
</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 
 d.setDate(d.getDate() + 50);
 console.log(d); //Wed Jun 23 2021 15:55:13 GMT+0700 
</script> 

Định dạng ngày theo kiểu việt nam

Để định dạng ngày thành dạng d/m/yyyy quen thuộc với người việt nam, bạn dùng hàm toLocaleDateString với tham số là vi. Xem ví dụ sau:

<script>
x ="2024-3-24"; 
// hiện giá trị ngày theo kiểu vn 
str = new Date(x).toLocaleDateString('vi'); // 24/3/2024

// hiện ngày hôm nay theo kiểu vn
str = new Date().toLocaleDateString('vi');  // 3/1/2024
</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