Phương thức getMonth() trả về tháng (0-11) của đối tượng Date theo thời gian địa phương. Lưu ý: Tháng là 0-based (0 = Tháng 1, 11 = Tháng 12) - đây là nguồn gốc của nhiều bug.
Cú pháp
dateObj.getMonth()
- Trả về: Số nguyên 0-11
- Không nhận tham số
Ví dụ cơ bản
const date = new Date('1989-09-26T12:04:25');
console.log(date.getMonth()); // 8 (Tháng 9)
Thiếu tháng
const date = new Date('1989 12:04:25'); // Không có tháng
console.log(date.getMonth()); // 0 (Tháng 1 - mặc định)
Ngày hiện tại
const now = new Date();
console.log(now.getMonth()); // Tháng hiện tại (0-11)
Hiển thị tên tháng
const months = [
'Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'
];
const date = new Date();
console.log(months[date.getMonth()]); // "Tháng 10" (ví dụ)
Ứng dụng
- Hiển thị tháng cho người dùng (cần +1)
- Lọc/báo cáo theo tháng
- Tạo date cho ngày đầu/cuối tháng
Lưu ý quan trọng
- Tháng 0-based - luôn nhớ +1 khi hiển thị cho người dùng
- Constructor
new Date(year, month, ...)cũng dùng 0-based - ISO string
date.toISOString()dùng 1-based (tháng 1-12) - Trả về
NaNnếu Date invalid - Có phiên bản UTC:
getUTCMonth()