Phương pháp 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ố phút được trả lại bởi 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ự 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
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
Đặ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