Phương thức Date setUTCMilliseconds() trong JavaScript
Bùi Tấn Lực
- 922
- 06/09/2025
Chức năng của Phương thức Date setUTCMilliseconds() trong JavaScript
Phương thức Date setUTCMilliseconds() trong JavaScript dùng để thay đổi số mili giây của một đối tượng thời gian Date theo múi giờ quốc tế (UTC).
Cú pháp của Phương thức Date setUTCMilliseconds() trong JavaScript
doituongdate.setUTCMilliseconds(giatrimiligiay);
doituongdate: Là một biến trả về từ đối tượng new Date();
giatrimiligiay: Chuyển qua múi giờ quốc tế đồng thời cũng theo giá trị của mili giây.
Code Phương thức Date setUTCMilliseconds() trong JavaScript
<script>
var thoigian = new Date("September 02, 2025 09:25:30.666"); // 666 mili giây
// Xem mili giây trước khi đổi
document.write("<b>// Xem mili giây trước khi đổi</b><br>");
var miligiay = thoigian.getMilliseconds();
document.write("Xem mili giây trước khi đổi: "+miligiay+"<br>"); // Kết quả: 666
// Đổi miligiay theo múi giờ quốc tế (UTC)
thoigian.setUTCMilliseconds(777);
// Xem mili giây sau khi đổi theo múi giờ quốc tế (UTC)
document.write("<b>// Xem mili giây sau khi đổi theo múi giờ quốc tế (UTC)</b><br>");
var miligiayhai = thoigian.getUTCMilliseconds();
document.write("Xem mili giây sau khi đổi theo múi giờ quốc tế (UTC): "+miligiayhai+"<br>"); // Kết quả: 777
</script>
Kết quả:
// Xem mili giây trước khi đổi
Xem mili giây trước khi đổi: 666
// Xem mili giây sau khi đổi theo múi giờ quốc tế (UTC)
Xem mili giây sau khi đổi theo múi giờ quốc tế (UTC): 777
Những lưu ý khi sử dụng setUTCMilliseconds() trong JavaScript
Khi dùng setUTCMilliseconds(), cần chú ý rằng phương thức này thay đổi trực tiếp đối tượng Date hiện tại. Giá trị truyền vào không chỉ đơn giản là một con số từ 0 đến 999; JavaScript còn có cơ chế tự điều chỉnh khi giá trị nằm ngoài khoảng thông thường.
Giá trị mili giây hợp lệ khi sử dụng setUTCMilliseconds()
Phần mili giây trong một thời điểm thường nằm trong khoảng từ 0 đến 999. Vì vậy, khi muốn đặt chính xác phần mili giây cho một đối tượng Date, nên sử dụng giá trị trong phạm vi này.
const date = new Date("2026-08-17T10:20:30Z");
date.setUTCMilliseconds(450);
console.log(date.toISOString());
Trong ví dụ trên, phần mili giây của thời điểm được đặt thành 450. Phương thức làm việc theo UTC, nên không phụ thuộc vào múi giờ địa phương của máy đang chạy JavaScript.
setUTCMilliseconds() xử lý giá trị vượt quá 999 như thế nào?
JavaScript không bắt buộc giá trị truyền vào phải nằm trong khoảng 0 đến 999. Nếu số mili giây lớn hơn hoặc nhỏ hơn phạm vi này, giá trị sẽ được chuẩn hóa sang các đơn vị thời gian liền kề.
const date = new Date("2026-08-17T10:20:30Z");
date.setUTCMilliseconds(1500);
console.log(date.toISOString());
Với 1500 mili giây, JavaScript sẽ tự quy đổi thành 1 giây và 500 mili giây. Vì vậy, thời gian thực tế sẽ tăng thêm một giây thay vì tạo ra một phần mili giây có giá trị 1500.
Cơ chế này cũng áp dụng theo chiều ngược lại. Chẳng hạn, giá trị âm có thể làm thời gian lùi về giây trước đó. Đây là điểm cần lưu ý khi giá trị mili giây được tính toán động thay vì nhập trực tiếp.
Sự khác nhau giữa setUTCMilliseconds() và setMilliseconds()
Hai phương thức đều thay đổi phần mili giây của đối tượng Date, nhưng khác nhau ở cách xác định thời gian cần thao tác. setUTCMilliseconds() làm việc theo UTC, trong khi setMilliseconds() sử dụng thời gian địa phương.
| Phương thức | Cách xử lý | Khi nên dùng |
|---|---|---|
| setUTCMilliseconds() | Đặt mili giây theo UTC | Khi dữ liệu thời gian cần thống nhất giữa các hệ thống hoặc múi giờ |
| setMilliseconds() | Đặt mili giây theo giờ địa phương | Khi ứng dụng xử lý thời gian theo múi giờ của môi trường hiện tại |
Nếu ứng dụng làm việc với dữ liệu thời gian được lưu trữ hoặc trao đổi dưới dạng UTC, setUTCMilliseconds() thường giúp cách xử lý rõ ràng và nhất quán hơn. Ngược lại, khi mục tiêu là thao tác trực tiếp với thời gian địa phương, setMilliseconds() sẽ phù hợp hơn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức Date setUTCMilliseconds() 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 *