Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Phương thức Date.setFullYear() trong JavaScript

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-1999
  • monthIndex: 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()