Khai báo date trong JavaScript | Laptrinhcanban.com

Khai báo date trong JavaScript

Hướng dẫn cách khai báo date trong JavaScript. Bạn sẽ học được cách sử dụng hàm New datehàm date trong JavaScript để khai báo date trong JavaScript sau bài học này.

Chúng ta có 5 phương pháp để khai báo date trong JavaScript như sau:

  • Tạo instance chứa ngày giờ tại thời điểm hiện tại bằng hàm New date
  • Tạo instance chứa ngày giờ từ một giá trị thời gian
  • Tạo instance chứa ngày giờ từ một chuỗi thời gian
  • Tạo instance chứa ngày giờ từ các thành phần thời gian
  • Khai báo date bằng hàm date trong JavaScript

Khai báo date trong JavaScript là gì

Khai báo date trong JavaScript là quá trình tạo ra các instance(thực thể) bằng các constructor(hàm tạo) trong đối tượng Date.

Khác với biến hay hàm, để sử dụng được đối tượng Date, chúng ta cần tạo ra các date instance - là các đối tượng cụ thể được tạo ra đối tượng Date. Các instance này thừa hưởng những thuộc tính và phương thức có sẵn trong đối tượng Date, và chúng ta sử dụng chúng để biểu diễn ngày tháng năm trong JavaScript.

Và để khai báo/tạo các instance này, chúng ta sử dụng tới hàm new Date trong javascript. Hàm new Date còn được gọi là constructor(hàm tạo) trong đối tượng Date, và được sử dụng với 1 trong 4 cách viết sau đây:

new Date();
new Date(milliseconds);
new Date(dateString);
new Date(year, month, day, hours, minutes, seconds, milliseconds);

Chúng ta hãy cùng tìm hiểu lần lượt 4 phương pháp khai báo date bằng hàm new Date trong javascript dưới đây.

Khai báo và tạo date instance chứa ngày giờ tại thời điểm hiện tại

Cú pháp sử dụng hàm new Date để khai báo/tạo date instance chứa ngày giờ tại thời điểm hiện tại như sau:

new Date();

Ví dụ, chúng ta tạo instance chứa ngày giờ hiện tại và gán nó vào một biến như dưới đây:

let d = new Date();

console.log(d);
// 2021-12-21T12:45:44.913Z

Sau khi tạo và gán instance vào một biến, chúng ta có thể sử dụng các phương thức có sẵn trong đối tượng Date với nó. Ví dụ, chúng ta có thể dùng phương thức toUTCString để chuyển instance date mới tạo về dạng chuỗi như sau:

let d = new Date();

console.log(d.toUTCString());
// Tue, 21 Dec 2021 12:47:45 GMT

Khai báo và tạo date instance từ một giá trị thời gian

Cú pháp sử dụng hàm new Date để tạo instance từ một giá trị thời gian như sau:

new Date(milliseconds);

Trong đó milliseconds là giá trị thời gian được tính bởi đơn vị mili giây. Hàm new Date coi ngày 1 tháng 1 năm 1970 vào 00:00:00 trong UTC là ngày cơ sở, và tạo ra instance với số mili giây đã trôi qua kể từ ngày cơ sở trên.

Và do được tính theo UTC nên chúng ta không cần quan tâm tới ảnh hưởng của chỉ định múi giờ với cách tạo instance này.

Ví dụ cụ thể:

let d1 = new Date(1000);
console.log(d1.toUTCString());
// Thu, 01 Jan 1970 00:00:01 GMT

let d2 = new Date(1632689696309);
console.log(d2.toUTCString());
// Sun, 26 Sep 2021 20:54:56 GMT

Giá trị d1 ở trên được tính bởi 1000 mili giây (1 giây) sau thời điểm ngày cơ sở, nên đã tạo ra instance biểu thị thời gian là Thu, 01 Jan 1970 00:00:01 GMT. Còn giá trị d2 thì lại được tính từ sau thời điểm ngày cơ sở 1632689696309 mili giây, nên đã trả về thời gian là năm 2021 như trên.

Khai báo và tạo date instance từ một chuỗi thời gian

Cú pháp sử dụng hàm new Date để tạo instance từ một chuỗi thời gian như sau:

new Date(dateString);

Trong đó dateString là một chuỗi String chứa thông tin thời gian được viết theo định dạng cụ thể.

Ví dụ cụ thể:

const date1 = new Date('December 17, 1995 03:24:00');
// Sun Dec 17 1995 03:24:00 GMT...

const date2 = new Date('1995-12-17T03:24:00');
// Sun Dec 17 1995 03:24:00 GMT...

Khai báo và tạo date instance từ các thành phần thời gian

Cú pháp sử dụng hàm new Date để tạo instance từ các thành phần thời gian như sau:

new Date(year, month [, day, hours, minutes, seconds, milliseconds]);

Trong đó:

  • year là năm, được viết bởi 2 hoặc 4 chữ số. Nếu là 4 chữ số thì là năm cụ thể, còn nếu là 2 chữ số, thì số năm sẽ bằng (1900 + year)
  • month là tháng, được viết bởi các số từ 0 đến 11, đại diện cho các tháng từ tháng 1 đến tháng 12
  • hours là giờ.
  • minutes là phút.
  • seconds là giây.
  • milliseconds là mili giây.

Chú ý trong các đối số trên thì chỉ có year và month là cần thiết phải chỉ định, còn các đối số còn lại có thể được lược bỏ khi tạo date instace bằng hàm new Date với phương pháp này. Và khi các đối số được lược bỏ thì day sẽ trở thành 1, và các giá trị còn lại (hours, minutes, seconds, milliseconds) sẽ được chỉ định bằng 0.

Với phương pháp này thì do không có mục chỉ định múi giờ, nên múi giờ trong môi trường hiện tại (local) sẽ được sử dụng khi tạo instance.

Do vậy cần chú ý dù cùng một câu lệnh nhưng khi thực hiện tại các môi trường khác nhau, do múi giờ thiết đặt khác nhau nên cũng có khả năng đưa ra các kết quả hoàn toàn khác nhau.

Ví dụ cụ thể của việc khai báo date instace với phương pháp này:

let d1 = new Date(2012, 9);
console.log(d1.toString());
// Mon Oct 01 2012 00:00:00 GMT+0000 (Coordinated Universal Time)

let d2 = new Date(96, 3, 24);
console.log(d2.toString());
// Wed Apr 24 1996 00:00:00 GMT+0000 (Coordinated Universal Time)

let d3 = new Date(2020, 9, 14, 16, 28, 5, 114);
console.log(d3.toString());
// Wed Oct 14 2020 16:28:05 GMT+0000 (Coordinated Universal Time)

Với d1 do chỉ có giá trị của year và month được chỉ định nên các giá trị còn lại được sử dụng mặc định.
Với d2, do giá trị của year là 2 chữ số nên số năm thực sẽ là (year + 1900) là năm 1996.
Và với d3 thì toàn bộ các giá trị thời gian đều được chỉ định và kết quả cũng trả về theo chỉ định đó.

Hàm Date trong javascript và cách khai báo date

Ở các phần trên chúng ta đã học cách dùng hàm new Date để tạo date instance. Tuy nhiên nếu bỏ new đi thì chúng ta sẽ có một hàm khác là hàm Date trong javascript, có tác dụng lấy ngày tháng năm hiện tại trong javascript và trả về kết quả dưới dạng một chuỗi.

Khác hàm new Date thì hàm date không tạo ra date instance, mà chỉ trả về thông tin ngày tháng năm hiện tại trong javascript dưới dạng chuỗi mà thôi.

Ví dụ:

let str = Date();
console.log(str);
// Tue Dec 21 2021 08:21:21 GMT+0000 (Coordinated Universal Time)

console.log(typeof str)
// string

Lưu ý với hàm Date, kể cả chúng ta chỉ định các đối số trong nó chăng nữa thì ngày tháng năm hiện tại trong javascript cũng sẽ được trả về.

Ví dụ:

let str = Date(2020, 9, 14, 16, 28, 5, 114);
console.log(str);
// Tue Dec 21 2021 08:21:21 GMT+0000 (Coordinated Universal Time)

console.log(typeof str)
// string

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách ** trong JavaScript** rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.