Phương thức Date setUTCHours() trong JavaScript
Bùi Tấn Lực
- 969
- 06/09/2025
Chức năng của Phương thức Date setUTCHours() trong JavaScript
Phương thức Date setUTCHours() trong JavaScript dùng để đổi giờ của một đối tượng thời gian Date thành múi giờ quốc tế (UTC), để chuyển đổi thời gian theo giờ có múi giờ quốc tế cần kết hợp với hàm toUTCString().
Cú pháp của Phương thức Date setUTCHours() trong JavaScript
doituongdate.setUTCHours(giatrigio);
doituongdate: Là một biến trả về từ đối tượng new Date();
giatrigio: Chuyển qua múi giờ quốc tế đồng thời cũng theo giá trị của giờ chỉ định.
doituongdate.setUTCHours(giatrigio,giatriphut,giatrigiay);
doituongdate: Là một biến trả về từ đối tượng new Date();
giatrigio: Chuyển qua múi giờ quốc tế đồng thời cũng theo giá trị của giờ chỉ định.
giatriphut: Chuyển qua múi giờ quốc tế đồng thời cũng theo giá trị của phút chỉ định.
giatrigiay: Chuyển qua múi giờ quốc tế đồng thời cũng theo giá trị của giây chỉ định.
Code Phương thức Date setUTCHours() trong JavaScript
<script>
// Đổi 9h thành 10h theo múi giờ quốc tế (UTC)
document.write("<b>// Đổi 9h thành 10h theo múi giờ quốc tế (UTC)</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.setUTCHours(10); // Đổi thành 10 giờ theo múi giờ quốc tế (UTC)
document.write("Đổi 9h thành 10h theo múi giờ quốc tế (UTC): "+thoigian.toUTCString()+"<br>"); // Kết quả: Tue, 02 Sep 2025 10:25:30 GMT
// Đổi 9h thành 10h, 25 phút thành 26 phút, 30 giây thành 31 giây theo múi giờ quốc tế (UTC)
document.write("<b>// Đổi 9h thành 10h, 25 phút thành 26 phút, 30 giây thành 31 giây theo múi giờ quốc tế (UTC)</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.setUTCHours(10,26,31); // Đổi thành 2/9/2025 10h, 26 phút, 31 giây theo múi giờ quốc tế (UTC)
document.write("Đổi thành 10h, 26 phút, 31 giây theo múi giờ quốc tế (UTC): "+thoigianhai.toUTCString()+"<br>"); // Kết quả: Tue, 02 Sep 2025 10:26:31 GMT
</script>
Kết quả:
// Đổi 9h thành 10h theo múi giờ quốc tế (UTC)
Đổi 9h thành 10h theo múi giờ quốc tế (UTC): Tue, 02 Sep 2025 10:25:30 GMT
// Đổi 9h thành 10h, 25 phút thành 26 phút, 30 giây thành 31 giây theo múi giờ quốc tế (UTC)
Đổi thành 10h, 26 phút, 31 giây theo múi giờ quốc tế (UTC): Tue, 02 Sep 2025 10:26:31 GMT
Những lưu ý khi sử dụng setUTCHours() trong JavaScript
setUTCHours() thay đổi thời gian theo UTC như thế nào?
setUTCHours() thiết lập giờ, phút, giây và mili giây của đối tượng Date dựa trên múi giờ UTC, thay vì múi giờ địa phương của môi trường chạy JavaScript. Vì vậy, cùng một đối tượng ngày nhưng kết quả hiển thị bằng getHours() và getUTCHours() có thể khác nhau.
Điểm quan trọng là phương thức này không tạo ra một thời điểm mới theo UTC. Nó thay đổi các thành phần thời gian của chính đối tượng Date, sau đó JavaScript tự tính lại thời điểm tương ứng. Khi làm việc với dữ liệu từ API, máy chủ hoặc hệ thống lưu thời gian theo UTC, cách xử lý này giúp hạn chế nhầm lẫn giữa giờ hệ thống và giờ chuẩn.
setUTCHours() có thể làm thay đổi ngày không?
Có. Nếu giá trị giờ vượt quá phạm vi thông thường, JavaScript sẽ tự điều chỉnh sang ngày liền trước hoặc liền sau. Cơ chế này đặc biệt 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.
Ví dụ, đặt giờ thành 25 sẽ khiến thời gian tăng thêm một ngày và trở thành 01:00 theo UTC. Tương tự, giá trị giờ âm có thể đưa thời điểm về ngày trước đó. Các giá trị phút, giây và mili giây cũng được chuẩn hóa theo nguyên tắc tương tự.
const date = new Date("2026-08-17T20:00:00Z");
date.setUTCHours(25);
console.log(date.toISOString());
Do đó, khi kiểm tra kết quả của setUTCHours(), không nên chỉ nhìn vào phần giờ. Cần kiểm tra cả ngày, tháng và năm vì việc chuẩn hóa thời gian có thể làm thay đổi toàn bộ ngày của đối tượng Date.
Khi nào nên dùng setUTCHours() thay vì setHours()?
Nên dùng setUTCHours() khi thời gian đang được xử lý theo UTC và ứng dụng cần giữ cách tính nhất quán giữa các máy chủ, trình duyệt hoặc khu vực có múi giờ khác nhau. Đây là lựa chọn phù hợp với dữ liệu thời gian được lưu trữ hoặc trao đổi dưới dạng UTC.
Ngược lại, setHours() phù hợp hơn khi mục tiêu là thao tác trực tiếp với giờ địa phương của thiết bị hoặc môi trường đang chạy JavaScript. Hai phương thức có cùng mục đích thay đổi giờ nhưng sử dụng hệ quy chiếu khác nhau.
Không nên chọn phương thức chỉ dựa trên tên hàm. Trước khi sử dụng, cần xác định thời gian trong ứng dụng đang được xem là UTC hay giờ địa phương. Chọn sai phương thức có thể khiến thời gian hiển thị lệch vài giờ, đặc biệt khi người dùng và máy chủ nằm ở các múi giờ khác nhau.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức Date setUTCHours() trong JavaScript.
- 0 Bình luận
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 *