Câu trả lời hiện tại sẽ cho bạn biết bù trừ múi giờ hiện tại, nhưng bạn sẽ gặp vấn đề nếu bạn so sánh các điểm lịch sử/tương lai trong thời gian vì điều này sẽ không phục vụ cho các thay đổi tiết kiệm ánh sáng ban ngày.
Trong nhiều múi giờ, mức chênh lệch thay đổi trong suốt cả năm và những thay đổi này xảy ra vào các ngày khác nhau hoặc hoàn toàn không phụ thuộc vào vĩ độ. Nếu bạn chỉ có thời gian UTC và khoản bù trừ, bạn không bao giờ có thể chắc chắn khoản chênh lệch sẽ ở vị trí đó tại các thời điểm khác nhau trong năm.
Ví dụ: chênh lệch UTC + 2: 00 có thể tham khảo Barcelona vào mùa hè hoặc Bờ Biển Ngà quanh năm. Việc bù đắp 2hr sẽ luôn luôn hiển thị thời gian chính xác ở Bờ Biển Ngà nhưng sẽ được 1 giờ trong nửa năm ở Barcelona.
Làm thế nào để chúng tôi phục vụ cho tất cả các vấn đề múi giờ này? Vâng, đó là khá đơn giản:
- Lưu mọi thời điểm trong UTC
- Store tên múi giờ nơi này xảy ra
Trong JavaScript, bạn có thể sử dụng Moment múi giờ để guess the users timezone mặc dù tôi đã chỉ được thử nghiệm điều này trong trình duyệt:
moment.tz.guess(); // eg. 'America/Chicago'
Sau đó, bạn có thể sử dụng chuỗi múi giờ này trong Moment Timezone để giúp bù đắp thời gian UTC đã chụp.
hãy thử ngày mới này(). GetTimezoneOffset() '. – vkstack
Cảm ơn. Nó đã làm việc. Nhưng tôi cần nó được định dạng trong "hh: mm"; vì vậy tôi đã sử dụng moment.js với 'console.log (''. concat (offset <0?" - ":" + ", thời điểm (''. concat (Math.abs (offset/60), Math.abs (offset % 60) <10? "0": "", Math.abs (offset% 60)), "hmm"). Định dạng ("HH: mm")); ' – Malith