# JavaScript - Định Dạng Ngày: Hướng Dẫn Dành Cho Người Mới Bắt Đầu

Xin chào các bạn, những nhà phát triển JavaScript đang trên đà trở thành cao thủ! Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới kỳ diệu của các định dạng ngày trong JavaScript. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - tôi sẽ là người bạn thân thiện dẫn đường cho bạn trong hành trình này, cũng như tôi đã làm cho hàng trăm sinh viên trong những năm dạy học của mình. Vậy, hãy lấy một tách cà phê (hoặc trà, nếu bạn thích), và chúng ta cùng bắt đầu nhé!

## Định Dạng Ngày Là Gì?

Trước khi chúng ta nhảy vào mã, hãy nói về định dạng ngày là gì. Hãy nghĩ về chúng như những cách khác nhau để biểu thị một thời điểm cụ thể. Tương tự như bạn có thể nói "April 1, 2023" hoặc "1/4/23" để ý chỉ cùng một ngày, máy tính cũng có nhiều cách khác nhau để thể hiện ngày.

Trong JavaScript, chúng ta có một đối tượng `Date`内置 giúp chúng ta làm việc với ngày và giờ. Đó như thể có một lịch超级 thông minh ngay trong mã của chúng ta!

## Các Định Dạng Ngày Thường Gặp Trong JavaScript

Hãy cùng xem xét một số định dạng ngày phổ biến nhất bạn sẽ gặp:

### 1. Định Dạng Ngày ISO

Đây là định dạng tiêu chuẩn được sử dụng quốc tế. Nó trông như thế này: "YYYY-MM-DD".

```javascript
let today = new Date();
console.log(today.toISOString().split('T')[0]);

Trong ví dụ này, new Date() tạo một đối tượng ngày cho ngày và giờ hiện tại. Sau đó, chúng ta convert nó thành định dạng ISO và chia cắt để chỉ lấy phần ngày. Nếu bạn chạy đoạn mã này vào ngày April 1, 2023, bạn sẽ thấy: "2023-04-01".

JavaScript - Date Formats

2. Định Dạng Ngày Ngắn

Đây là định dạng gọn hơn: "MM/DD/YYYY".

let today = new Date();
console.log(today.toLocaleDateString('en-US'));

Điều này sẽ output something like "4/1/2023" cho ngày April 1, 2023.

3. Định Dạng Ngày Dài

Định dạng này viết ra tên tháng: "Month DD, YYYY".

let today = new Date();
console.log(today.toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }));

Điều này sẽ cho bạn something like "Saturday, April 1, 2023".

Tạo Đối Tượng Ngày

Bây giờ chúng ta đã xem qua một số định dạng, hãy xem xét các cách khác nhau để tạo đối tượng ngày:

1. Ngày và Giờ Hiện Tại

let now = new Date();
console.log(now);

Điều này tạo một đối tượng ngày cho thời điểm hiện tại.

2. Ngày và Giờ Cụ Thể

let birthday = new Date('1990-05-15T13:30:00');
console.log(birthday);

Điều này tạo một đối tượng ngày cho ngày 15 tháng 5 năm 1990, lúc 1:30 PM.

3. Sử Dụng Các Phần Tử Riêng Lẻ

let christmas = new Date(2023, 11, 25); // Lưu ý: tháng được tính từ 0
console.log(christmas);

Điều này tạo một đối tượng ngày cho ngày 25 tháng 12 năm 2023 (nhớ rằng, trong JavaScript, tháng được tính từ 0, vì vậy 11 đại diện cho tháng 12).

Làm Việc Với Ngày

Bây giờ chúng ta biết cách tạo ngày, hãy xem xét một số thao tác phổ biến:

1. Lấy Các Phần Tử Của Ngày

let today = new Date();
console.log("Year:", today.getFullYear());
console.log("Month:", today.getMonth() + 1); // +1 vì tháng được tính từ 0
console.log("Day:", today.getDate());
console.log("Hour:", today.getHours());
console.log("Minute:", today.getMinutes());
console.log("Second:", today.getSeconds());

Điều này sẽ output từng phần tử của ngày và giờ hiện tại.

2. Định Dạng Ngày

JavaScript cung cấp nhiều phương thức để định dạng ngày:

let date = new Date('2023-04-01T12:00:00');

console.log(date.toDateString()); // "Sat Apr 01 2023"
console.log(date.toTimeString()); // "12:00:00 GMT+0000 (Coordinated Universal Time)"
console.log(date.toLocaleString()); // "4/1/2023, 12:00:00 PM"
console.log(date.toLocaleDateString()); // "4/1/2023"
console.log(date.toLocaleTimeString()); // "12:00:00 PM"

Mỗi phương thức này cho bạn một представление khác nhau của cùng một ngày.

Bảng Các Phương Thức Ngày

Dưới đây là bảng tiện ích của một số phương thức Ngày phổ biến:

Phương Thức Mô Tả Ví Dụ
getFullYear() Lấy năm (4 chữ số) date.getFullYear() // 2023
getMonth() Lấy tháng (0-11) date.getMonth() // 3 (cho tháng 4)
getDate() Lấy ngày trong tháng (1-31) date.getDate() // 1
getDay() Lấy ngày trong tuần (0-6) date.getDay() // 6 (cho thứ Bảy)
getHours() Lấy giờ (0-23) date.getHours() // 12
getMinutes() Lấy phút (0-59) date.getMinutes() // 0
getSeconds() Lấy giây (0-59) date.getSeconds() // 0
toDateString() Chuyển đổi ngày thành chuỗi đọc được date.toDateString() // "Sat Apr 01 2023"
toTimeString() Chuyển đổi giờ thành chuỗi đọc được date.toTimeString() // "12:00:00 GMT+0000 (Coordinated Universal Time)"

Kết Luận

Và thế là bạn đã có tất cả, các bạn ơi! Chúng ta đã cùng nhau hành trình qua thế giới của các định dạng ngày trong JavaScript, từ việc tạo đối tượng ngày đến việc định dạng chúng theo nhiều cách khác nhau. Nhớ rằng, việc làm việc với ngày có thể看起来 phức tạp ban đầu, nhưng với sự thực hành, bạn sẽ xử lý chúng như một chuyên gia trong thời gian không xa.

Như tôi luôn nói với sinh viên của mình, chìa khóa để thành thạo các khái niệm lập trình là thực nghiệm. Hãy thử các ví dụ này, thay đổi chúng, và xem会发生什么. Đừng sợ mắc lỗi - thường đó là nơi mà việc học hỏi tốt nhất xảy ra!

Tiếp tục lập mã, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ với nó. Trước khi bạn biết, bạn sẽ là người giải thích định dạng ngày cho bạn bè của mình (dù họ có muốn nghe hay không)!

Credits: Image by storyset