Phương thức Date getUTCFullYear() trong JavaScript
Bùi Tấn Lực
- 921
- 02/09/2025
Chức năng của Phương thức Date getUTCFullYear() trong JavaScript
Phương thức Date getUTCFullYear() trong JavaScript dùng để lấy năm theo múi giờ quốc tế (UTC) dựa vào thời gian hiện tại hoặc thời gian được chỉ định trong đối tượng Date.
Cú pháp của Phương thức Date getUTCFullYear() trong JavaScript
doituongdate.getUTCFullYear();
doituongdate: Đối tượng thời gian new Date();
Code Phương thức Date getUTCFullYear() trong JavaScript
<script>
// Lấy năm hiện tại theo múi giờ quốc tế (UTC)
document.write("<b>// Lấy năm hiện tại theo múi giờ quốc tế (UTC)</b><br>");
var date = new Date();
var nam = date.getUTCFullYear();
document.write("Năm hiện tại theo múi giờ quốc tế (UTC): "+nam+"<br>"); // Kết quả: 2025
// Lấy năm theo múi giờ quốc tế (UTC) theo thời gian đã được tạo
document.write("<b>// Lấy năm theo múi giờ quốc tế (UTC) theo thời gian đã được tạo</b><br>");
var datehai = new Date("January 01, 2024 00:01:30");
var namhai = datehai.getUTCFullYear();
document.write("Lấy năm theo múi giờ quốc tế (UTC) theo thời gian đã được tạo: "+namhai+"<br>"); // Kết quả: 2023
</script>
Kết quả:
// Lấy năm hiện tại theo múi giờ quốc tế (UTC)
Năm hiện tại theo múi giờ quốc tế (UTC): 2025
// Lấy năm theo múi giờ quốc tế (UTC) theo thời gian đã được tạo
Lấy năm theo múi giờ quốc tế (UTC) theo thời gian đã được tạo: 2023
Những lưu ý khi sử dụng getUTCFullYear() trong JavaScript
Khi làm việc với đối tượng Date, getUTCFullYear() phù hợp khi cần lấy năm theo chuẩn UTC thay vì năm theo múi giờ địa phương. Tuy nhiên, kết quả có thể khác với phương thức lấy năm thông thường nếu thời điểm đang xét nằm gần ranh giới giữa hai năm.
getUTCFullYear() khác getFullYear() như thế nào?
Điểm khác biệt nằm ở múi giờ được sử dụng để xác định năm. getFullYear() lấy năm theo múi giờ của môi trường đang chạy JavaScript, còn getUTCFullYear() luôn xác định năm dựa trên thời gian UTC.
Vì vậy, cùng một thời điểm nhưng hai phương thức có thể trả về hai năm khác nhau. Điều này thường xảy ra vào những thời điểm sát 0 giờ ngày 1 tháng 1 hoặc khi ứng dụng hoạt động với người dùng ở nhiều múi giờ.
const date = new Date('2026-01-01T00:30:00+07:00');
console.log(date.getFullYear());
console.log(date.getUTCFullYear());
Trong trường hợp trên, thời điểm được tạo theo múi giờ UTC+7 nhưng khi quy đổi về UTC đã lùi về ngày 31 tháng 12 của năm trước. Vì thế, kết quả của hai phương thức có thể không giống nhau.
Ảnh hưởng của múi giờ đến kết quả trả về
getUTCFullYear() không lấy năm dựa trên múi giờ của người dùng. Phương thức này chuyển thời điểm về chuẩn UTC rồi xác định năm tương ứng. Đây là điểm cần chú ý khi dữ liệu ngày giờ được lưu trữ hoặc trao đổi giữa nhiều hệ thống.
Ví dụ, một thời điểm vào đầu năm ở Việt Nam có thể vẫn thuộc năm trước khi biểu diễn theo UTC. Nếu chỉ nhìn vào ngày giờ hiển thị trên giao diện mà không xét múi giờ, kết quả trả về có thể gây nhầm lẫn.
Do đó, khi xử lý dữ liệu ngày tháng từ API, cơ sở dữ liệu hoặc hệ thống máy chủ, nên xác định rõ dữ liệu đang được biểu diễn theo UTC hay múi giờ địa phương trước khi sử dụng kết quả của phương thức.
Khi nào nên sử dụng getUTCFullYear()?
Nên sử dụng getUTCFullYear() khi ứng dụng cần xác định năm theo một mốc thời gian thống nhất, không phụ thuộc vào vị trí hoặc múi giờ của người dùng. Cách này đặc biệt hữu ích với dữ liệu được đồng bộ giữa máy chủ, API và nhiều khu vực khác nhau.
- Xử lý dữ liệu theo UTC: phù hợp với hệ thống đã quy ước ngày giờ theo UTC.
- Đồng bộ giữa nhiều múi giờ: giúp kết quả xác định năm nhất quán trên các thiết bị.
- Phân tích thời gian từ API: hữu ích khi dữ liệu trả về chứa thời điểm theo UTC.
- Tránh phụ thuộc môi trường: kết quả không thay đổi chỉ vì người dùng đang ở một múi giờ khác.
Ngược lại, nếu mục tiêu là hiển thị hoặc xử lý năm theo thời gian địa phương của người dùng, getFullYear() thường phù hợp hơn. Việc chọn đúng phương thức ngay từ đầu giúp hạn chế lỗi khi xử lý các thời điểm nằm gần ranh giới giữa hai năm.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức Date getUTCFullYear() 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 *