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

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

Chức năng của Phương thức Date setDate() trong JavaScript

Phương thức Date setDate() trong JavaScript dùng để quy định ngày của tháng cho một đối tượng thời gian Date, nếu ngày thêm vào lớn hơn số ngày của tháng hiện tại thì thời gian còn lại sẽ được cộng vào tháng kế tiếp, lưu ý vì tháng 1 sẽ có giá trị 0 nên cần chú ý dễ nhầm.

Cú pháp của Phương thức Date setDate() trong JavaScript

doituongdate.setDate(songay);

doituongdate: Đối tượng thời gian new Date();

songay: là số ngày cần thay đổi, bắt buộc phải nhập.

Code Phương thức Date setDate() trong JavaScript

<script>
// Tạo ngày 20 cho tháng 10
document.write("<b>// Tạo đối tượng thời gian có ngày là 20</b><br>");
var thoigian  = new Date(2025,9,05); // Tháng 0 là tháng 1, vì vậy mình để 9 chính là tháng 10
thoigian.setDate(20); // Tạo ngày cho tháng
document.write("Tạo đối tượng thời gian có ngày là 20: "+thoigian+"<br>"); // Kết quả: Mon Oct 20 2025 00:00:00 GMT+0700 (Giờ Đông Dương)
// Tạo đối tượng thời gian có ngày là 30, ở đây mình tạo tháng 2 chỉ có 28 ngày nên sẽ cộng thêm vào tháng 3
document.write("<b>// Tạo đối tượng thời gian có ngày là 30, ở đây mình tạo tháng 2 chỉ có 28 ngày nên sẽ cộng thêm vào tháng 3</b><br>");
var thoigianhai  = new Date(2025,1,1); // Tháng 0 là tháng 1, vì vậy mình để 1 chính là tháng 2
thoigianhai.setDate(30); // Tạo ngày cho tháng
document.write("Tạo đối tượng thời gian có ngày là 30, ở đây mình tạo tháng 2 chỉ có 28 ngày nên sẽ cộng thêm vào tháng 3: "+thoigianhai+"<br>"); // Kết quả: Sun Mar 02 2025 00:00:00 GMT+0700 (Giờ Đông Dương)
</script>

Kết quả:

// Tạo đối tượng thời gian có ngày là 20
Tạo đối tượng thời gian có ngày là 20: Mon Oct 20 2025 00:00:00 GMT+0700 (Giờ Đông Dương)
// Tạo đối tượng thời gian có ngày là 30, ở đây mình tạo tháng 2 chỉ có 28 ngày nên sẽ cộng thêm vào tháng 3
Tạo đối tượng thời gian có ngày là 30, ở đây mình tạo tháng 2 chỉ có 28 ngày nên sẽ cộng thêm vào tháng 3: Sun Mar 02 2025 00:00:00 GMT+0700 (Giờ Đông Dương)

Chạy Thử

Những trường hợp cần lưu ý khi dùng Date.setDate()

Phương thức Date.setDate() có thể xử lý nhiều giá trị ngày khác nhau, kể cả khi ngày mới vượt ra ngoài phạm vi của tháng hiện tại. JavaScript sẽ tự điều chỉnh sang tháng hoặc năm tương ứng. Hiểu rõ cơ chế này giúp tránh kết quả ngoài dự kiến khi thao tác với ngày tháng.

setDate() khi ngày vượt quá số ngày trong tháng

Nếu truyền vào setDate() một giá trị lớn hơn số ngày của tháng hiện tại, JavaScript không báo lỗi mà tự động chuyển phần dư sang tháng kế tiếp. Đây là đặc điểm hữu ích khi cần cộng ngày mà không phải tự tính số ngày của từng tháng.

Ví dụ, nếu đối tượng ngày đang ở ngày 28 của một tháng và gọi setDate(35), kết quả sẽ được điều chỉnh sang tháng tiếp theo thay vì giữ nguyên giá trị 35 trong tháng hiện tại.

setDate() với giá trị âm hoặc bằng 0

Giá trị truyền vào setDate() không bắt buộc phải bắt đầu từ 1. Khi sử dụng 0, JavaScript sẽ đưa ngày về ngày cuối cùng của tháng trước. Các giá trị âm tiếp tục lùi thêm về những ngày trước đó.

Cơ chế này có thể được tận dụng để xác định ngày cuối tháng trước hoặc tính toán các mốc thời gian lùi theo ngày mà không cần tự xử lý số ngày của từng tháng.

Thay đổi ngày khi chuyển sang tháng hoặc năm mới

Khi việc điều chỉnh ngày làm thời gian vượt qua tháng 12 hoặc lùi về trước tháng 1, Date.setDate() cũng tự động cập nhật năm. Vì vậy, kết quả không chỉ thay đổi phần ngày mà có thể đồng thời thay đổi cả tháng và năm.

Đặc biệt, khi xử lý các khoảng thời gian dài hoặc dữ liệu nằm gần cuối năm, nên kiểm tra lại toàn bộ giá trị ngày, tháng và năm sau khi gọi phương thức. Điều này giúp tránh giả định rằng setDate() chỉ tác động đến riêng phần ngày.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Phương thức Date setDate() trong JavaScript.

  • 0 Bình luận
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Phương thức Date setDate() trong JavaScript
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !