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

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

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

Phương thức Date setHours() trong JavaScript dùng để đổi giờ của một đối tượng thời gian Date theo múi giờ địa phương, ngoài ra có thể thay đổi thêm phút, giây, mili giây.

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

doituongdate.setHours(sogio);

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

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

doituongdate.setHours(sogio,sophut,sogiay,somiligiay);

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

sogio: Số giờ cần thay đổi, bắt buộc phải nhập.

sophut: Số phút cần thay đổi, không bắt buộc.

sogiay: Số giây cần thay đổi, không bắt buộc.

somiligiay: số mili giây cần thay đổi, không bắt buộc, có giá trị từ 0 tới 999.

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

<script>
// Đổi 9h thành 10h
document.write("<b>// Đổi 9h thành 10h</b><br>");
var thoigian  = new Date("September 02, 2025 09:25:30"); // Ngày 2/9/2025 9h 25 phút 30 giây
thoigian.setHours(10); // Đổi thành 10 giờ
document.write("Đổi 9h thành 10h: "+thoigian+"<br>"); // Kết quả: Tue Sep 02 2025 10:25:30 GMT+0700 (Giờ Đông Dương)
// Đổi 9h thành 10h, 25 phút thành 26 phút, 30 giây thành 31 giây
document.write("<b>// Đổi 9h thành 10h, 25 phút thành 26 phút, 30 giây thành 31 giây</b><br>");
var thoigianhai  = new Date("September 02, 2025 09:25:30"); // Ngày 2/9/2025 9h 25 phút 30 giây
thoigianhai.setHours(10,26,31); // Đổi thành 2/9/2025 10h, 26 phút, 31 giây
document.write("Đổi thành 10h, 26 phút, 31 giây: "+thoigianhai+"<br>"); // Kết quả: Tue Sep 02 2025 10:26:31 GMT+0700 (Giờ Đông Dương)
</script>

Kết quả:

// Đổi 9h thành 10h
Đổi 9h thành 10h: Tue Sep 02 2025 10:25:30 GMT+0700 (Giờ Đông Dương)
// Đổi 9h thành 10h, 25 phút thành 26 phút, 30 giây thành 31 giây
Đổi thành 10h, 26 phút, 31 giây: Tue Sep 02 2025 10:26:31 GMT+0700 (Giờ Đông Dương)

Chạy Thử

Những trường hợp cần lưu ý khi sử dụng setHours() trong JavaScript

Khi sử dụng setHours(), kết quả không chỉ phụ thuộc vào giá trị giờ truyền vào. Phương thức này còn có thể tác động đến ngày, phút, giây và mili giây của đối tượng Date. Đặc biệt, việc truyền giá trị nằm ngoài phạm vi thông thường có thể khiến thời gian tự động chuyển sang ngày khác.

Giá trị giờ vượt phạm vi ảnh hưởng đến ngày như thế nào?

Giá trị giờ không nhất thiết phải nằm trong khoảng từ 0 đến 23. JavaScript sẽ tự điều chỉnh thời gian khi giá trị vượt giới hạn. Chẳng hạn, đặt giờ thành 24 sẽ đưa thời gian sang 00:00 của ngày tiếp theo. Tương tự, giá trị âm có thể làm thời gian lùi về ngày trước đó.

Cơ chế này hữu ích khi cần cộng hoặc trừ thời gian mà không phải tự tính số ngày. Tuy nhiên, nếu chỉ muốn thay đổi phần giờ, cần kiểm tra kết quả sau khi gọi phương thức để tránh vô tình làm thay đổi cả ngày.

const date = new Date("2026-08-17T10:30:00");

date.setHours(24);

console.log(date);

Trong ví dụ trên, giờ được đặt thành 24 nên đối tượng thời gian sẽ được chuẩn hóa thành 00:30 của ngày kế tiếp. Đây là điểm cần lưu ý khi dữ liệu đầu vào đến từ người dùng hoặc từ một hệ thống khác.

setHours() thay đổi trực tiếp đối tượng Date ra sao?

setHours() không tạo ra một đối tượng Date mới. Phương thức này thay đổi trực tiếp giá trị của đối tượng hiện tại và trả về timestamp tương ứng với thời gian sau khi thay đổi.

Vì vậy, nếu cùng một đối tượng Date được sử dụng ở nhiều vị trí trong chương trình, việc gọi setHours() có thể làm thay đổi dữ liệu mà các đoạn mã khác đang sử dụng.

const date = new Date("2026-08-17T08:15:00");

const result = date.setHours(14);

console.log(date);
console.log(result);

Trong trường hợp cần giữ nguyên thời gian ban đầu, nên tạo một bản sao trước khi thay đổi. Cách này giúp hạn chế lỗi do dữ liệu bị biến đổi ngoài dự kiến.

const originalDate = new Date("2026-08-17T08:15:00");
const newDate = new Date(originalDate);

newDate.setHours(14);

console.log(originalDate);
console.log(newDate);

Khi nào nên dùng setUTCHours() thay cho setHours()?

setHours() làm việc theo múi giờ địa phương của môi trường JavaScript, trong khi setUTCHours() thiết lập giờ theo múi giờ UTC. Vì vậy, việc lựa chọn phương thức phụ thuộc vào cách ứng dụng lưu trữ và xử lý thời gian.

Nếu thời gian cần phản ánh giờ địa phương của thiết bị hoặc môi trường chạy mã, setHours() thường phù hợp hơn. Ngược lại, khi hệ thống thống nhất dữ liệu theo UTC để trao đổi giữa nhiều múi giờ, setUTCHours() sẽ giúp thao tác theo cùng một chuẩn thời gian.

const date = new Date();

date.setHours(10);

console.log(date);

Điểm quan trọng là không nên chọn hai phương thức chỉ dựa trên tên gọi. Khi xây dựng ứng dụng có người dùng ở nhiều quốc gia, cần xác định rõ thời gian đang được biểu diễn theo giờ địa phương hay UTC trước khi thay đổi giá trị.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Phương thức Date setHours() 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 setHours() 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) !