Hướng dẫn timezone offset to hours javascript - múi giờ bù đắp thành giờ javascript

Phương pháp getTimezoneOffset() trả về sự khác biệt, tính theo phút, giữa một ngày được đánh giá trong múi giờ UTC và cùng ngày được đánh giá trong múi giờ địa phương.getTimezoneOffset() method returns the difference, in minutes, between a date as evaluated in the UTC time zone, and the same date as evaluated in the local time zone.

Thử nó

Cú pháp

Giá trị trả về

Sự khác biệt, trong vài phút, giữa ngày được đánh giá trong múi giờ UTC và được đánh giá trong múi giờ địa phương. Thuật toán thời gian địa phương thực tế được xác định là xác định và giá trị trả về được phép bằng 0 trong thời gian không có dữ liệu phù hợp.

Sự mô tả

date.getTimezoneOffset() trả về sự khác biệt, tính bằng vài phút, giữa date như được đánh giá trong múi giờ UTC và được đánh giá trong múi giờ cục bộ - nghĩa là múi giờ của hệ thống máy chủ trong đó trình duyệt đang được sử dụng (nếu mã được chạy từ Web trong trình duyệt), hoặc nếu không thì hệ thống máy chủ của bất kỳ thời gian chạy JavaScript nào (ví dụ: môi trường Node.js) mã được thực thi.

Giá trị âm và giá trị tích cực

Số phút được trả lại bởi getTimezoneOffset() là dương nếu múi giờ địa phương đứng sau UTC và âm nếu múi giờ địa phương đi trước UTC. Ví dụ, đối với UTC+10, -600 sẽ được trả về.

Kết quả khác nhau trong các vùng tiết kiệm ánh sáng ban ngày (DST)

Trong một khu vực hàng năm chuyển vào và ra khỏi thời gian tiết kiệm ánh sáng ban ngày (DST), vì date khác nhau, số phút được trả lại bằng cách gọi getTimezoneOffset() có thể không đồng nhất.

Lưu ý: Hành vi của ________ 3 sẽ không bao giờ khác nhau dựa trên thời gian mã được chạy - hành vi của nó luôn nhất quán khi chạy trong cùng một khu vực. Chỉ có giá trị của date ảnh hưởng đến kết quả. getTimezoneOffset()'s behavior will never differ based on the time when the code is run — its behavior is always consistent when running in the same region. Only the value of date affects the result.

Trong hầu hết các triển khai, cơ sở dữ liệu múi giờ IANA (TZDATA) được sử dụng để xác định chính xác mức độ bù của múi giờ cục bộ tại thời điểm date. Tuy nhiên, nếu thông tin đó không có sẵn, việc triển khai có thể trả về không.

Ví dụ

Sử dụng getTimezononeOfset ()

// Create a Date instance for the current time
const currentLocalDate = new Date();
// Create a Date instance for 03:24 GMT-0200 on May 1st in 2016
const laborDay2016at0324GMTminus2 = new Date('2016-05-01T03:24:00-02:00');
currentLocalDate.getTimezoneOffset() === laborDay2016at0324GMTminus2.getTimezoneOffset();
// true, always, in any timezone that doesn't annually shift in and out of DST
// false, sometimes, in any timezone that annually shifts in and out of DST

getTimeZoneOfset () và DST

Ở các khu vực sử dụng DST, giá trị trả lại có thể thay đổi dựa trên thời gian của năm date. Dưới đây là đầu ra trong thời gian chạy ở New York, trong đó múi giờ là UTC-05: 00.

const nyOffsetSummer = new Date('2022-02-01').getTimezoneOffset(); // 300
const nyOffsetWinter = new Date('2022-08-01').getTimezoneOffset(); // 240

GetTimeZoneOfset () và dữ liệu lịch sử

Vì lý do lịch sử, múi giờ một khu vực có thể thay đổi liên tục, thậm chí coi thường DST. Ví dụ, bên dưới là đầu ra trong thời gian chạy ở Thượng Hải, trong đó múi giờ là UTC+08: 00.

const shModernOffset = new Date('2022-01-27').getTimezoneOffset(); // -480
const shHistoricalOffset = new Date('1943-01-27').getTimezoneOffset(); // -540

Điều này là do trong Chiến tranh Trung-Nhật khi Thượng Hải nằm dưới sự kiểm soát của Nhật Bản, múi giờ đã được đổi thành UTC+09: 00 để phù hợp với Nhật Bản (có hiệu lực, đó là "DST quanh năm"), và điều này đã được ghi lại trong Cơ sở dữ liệu IANA.

Thông số kỹ thuật

Sự chỉ rõ
Đặc tả ngôn ngữ Ecmascript # sec-date.prototype.gettimezoneoffset
# sec-date.prototype.gettimezoneoffset

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm

Offset Timezone trong JavaScript là gì?

Tùy bù timezone là chênh lệch thời gian tính theo giờ hoặc phút giữa thời gian phổ biến (UTC) và múi giờ nhất định. Phương thức JavaScript getTimeZoneOffset () được sử dụng để tìm phần bù múi giờ. Nó trả về sự khác biệt về múi giờ trong vài phút, giữa UTC và giờ địa phương hiện tại.the time difference in hours or minutes between the Coordinated Universal Time (UTC) and a given time zone. The JavaScript getTimezoneOffset() method is used to find the timezone offset. It returns the timezone difference in minutes, between the UTC and the current local time.

Làm cách nào để tìm thấy múi giờ bù?

Bạn có thể nhận được sự bù đắp của một múi giờ bằng cách sử dụng wasceddateTime#getoffset.Lưu ý rằng độ lệch của múi giờ quan sát các thay đổi DST theo những thay đổi trong DST.Đối với những nơi khác (ví dụ: Ấn Độ), nó vẫn được cố định.Do đó, nên đề cập đến thời điểm khi bù múi giờ được hiển thị.ZonedDateTime#getOffset . Note that the offset of a timezone that observes DST changes as per the changes in DST. For other places (e.g. India), it remains fixed. Therefore, it is recommended to mention the moment when the offset of a timezone is shown.

Làm thế nào để bạn tính toán thời gian bù UTC?

Thêm thời gian địa phương bù vào thời gian UTC.Ví dụ: nếu độ bù thời gian địa phương của bạn là -5: 00 và nếu thời gian UTC được hiển thị là 11:00, hãy thêm -5 đến 11. Cài đặt thời gian khi được điều chỉnh để bù là 06:00 (6:00 A.M.).Lưu ý ngày cũng theo định dạng UTC.. For example, if your local time offset is -5:00, and if the UTC time is shown as 11:00, add -5 to 11. The time setting when adjusted for offset is 06:00 (6:00 A.M.). Note The date also follows UTC format.

Làm thế nào để tôi tìm thấy múi giờ của tôi trong JavaScript?

JavaScript Ngày GetTimeZoneOffset () getTimeZoneOfset () trả về sự khác biệt giữa thời gian UTC và thời gian địa phương.GetTimeZoneOffset () trả về sự khác biệt trong vài phút.Ví dụ: nếu múi giờ của bạn là GMT+2, -120 sẽ được trả về.getTimezoneOffset() getTimezoneOffset() returns the difference between UTC time and local time. getTimezoneOffset() returns the difference in minutes. For example, if your time zone is GMT+2, -120 will be returned.