Phương thức setFullYear() thiết lập năm (4 chữ số) cho đối tượng Date theo thời gian địa phương, trả về timestamp mới (mili-giây từ epoch).
Cú pháp
dateObj.setFullYear(year[, monthIndex[, day]])
year: Năm (ví dụ: 2024). Giá trị 0-99 -> 1900-1999monthIndex: Tùy chọn, tháng 0-based (0-11)day: Tùy chọn, ngày trong tháng (1-31)- Trả về: Timestamp mới (number)
Ví dụ cơ bản
const date = new Date('1989-09-26T12:04:25.096');
console.log("Trước:", date.toUTCString()); // Tue, 26 Sep 1989 06:34:25 GMT
date.setFullYear(2009);
console.log("Sau:", date.toUTCString()); // Sat, 26 Sep 2009 06:34:25 GMT
Chỉ set năm, giữ tháng/ngày
const date = new Date('2024-02-29'); // Năm nhuận
date.setFullYear(2023); // 2023 không nhuận
console.log(date.toISOString()); // 2023-02-28T00:00:00.000Z (tự động adjust 29/2 -> 28/2)
Set năm + tháng + ngày
const date = new Date('2024-01-01');
date.setFullYear(2025, 11, 25); // 25/12/2025
console.log(date.toISOString()); // 2025-12-25T00:00:00.000Z
Ngày hiện tại set năm
const date = new Date(); // Hôm nay
date.setFullYear(2025);
console.log(date.toDateString()); // Giữ nguyên tháng/ngày hiện tại, đổi năm
Ứng dụng
- Tính ngày sinh nhật năm nay:
birthday.setFullYear(currentYear) - Tạo date cho năm sau/trước:
date.setFullYear(date.getFullYear() + 1) - Normalization tự động: ngày 31/4 -> 1/5, 29/2 năm không nhuận -> 28/2
Lưu ý
- Tham số tháng là 0-based (0-11)
- Năm 0-99 map đến 1900-1999
- Tự động normalize ngày/tháng vượt phạm vi
- Làm thay đổi object Date gốc (mutable)
- Có phiên bản UTC:
setUTCFullYear()