Hướng dẫn convert utc offset to timezone javascript - chuyển đổi utc offset sang múi giờ javascript

Đã xem xét xung quanh rất nhiều bao gồm các liên kết từ trang này, tôi đã tìm thấy bài viết tuyệt vời này, sử dụng mốc m vì thời gian:

https://www.webniraj.com/2016/11/23/javascript-using-moment-js-to-display-dates-times-in-users-timezone/

Để tóm tắt nó:

Nhận múi giờ của người dùng

var tz = moment.tz.guess();
console.info('Timezone: ' + tz);

Returns EG: Timezone: Châu Âu/London

Đặt múi giờ người dùng mặc định

moment.tz.setDefault(tz);

Đặt thời gian tùy chỉnh

moment.tz.setDefault('America/Los_Angeles');

Chuyển đổi ngày / thời gian sang thời gian địa phương, giả sử ngày / giờ ban đầu ở UTC

moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');

Returns: Sun, ngày 25 tháng 12 năm 2016, 7:00 sáng

Chuyển đổi ngày/giờ thành thời gian LA

moment.utc('2016-12-25 07:00').tz('America/Los_Angeles').format('ddd, Do MMMM YYYY, h:mma');

Trả lại: Thứ bảy, ngày 24 tháng 12 năm 2016, 11:00 tối

Chuyển đổi từ LA Time sang London

moment.tz('2016-12-25 07:00', 'America/Los_Angeles').tz('Europe/London').format( 'ddd, Do MMMM YYYY, h:mma' );

Returns: Sun, ngày 25 tháng 12 năm 2016, 3:00 chiều

Chuyển đổi ngày thành múi giờ khác bằng JavaScript #

Để chuyển đổi ngày thành múi giờ khác:

  1. Sử dụng phương thức
    moment.tz.setDefault(tz);
    
    0 để có được một chuỗi đại diện cho ngày theo múi giờ được cung cấp.
  2. Chuyển kết quả cho hàm tạo
    moment.tz.setDefault(tz);
    
    1.
  3. Đối tượng
    moment.tz.setDefault(tz);
    
    2 đã trả lại sẽ có ngày và thời gian được đặt theo múi giờ được cung cấp.

Copied!

function changeTimeZone(date, timeZone) { if (typeof date === 'string') { return new Date( new Date(date).toLocaleString('en-US', { timeZone, }), ); } return new Date( date.toLocaleString('en-US', { timeZone, }), ); } const laDate = changeTimeZone(new Date(), 'America/Los_Angeles'); console.log(laDate); // 👉️ "Sun Jan 16 2022 01:22:07" const berlinDate = changeTimeZone(new Date(), 'Europe/Berlin'); console.log(berlinDate); // 👉️ "Sun Jan 16 2022 10:22:07"

Phương thức Tolocalestring trả về một chuỗi dành riêng cho địa phương được điều chỉnh theo múi giờ được cung cấp.

Hàm

moment.tz.setDefault(tz);
3 có thể được truyền một chuỗi ngày hoặc đối tượng
moment.tz.setDefault(tz);
2 và trả về một đối tượng
moment.tz.setDefault(tz);
2 với ngày và thời gian tương ứng với múi giờ được cung cấp.

Hai tham số chúng tôi đã chuyển sang phương thức

moment.tz.setDefault(tz);
6 là:

  1. moment.tz.setDefault(tz);
    
    7 - Một chuỗi có thẻ ngôn ngữ BCP 47 hoặc một mảng các chuỗi đó. Bạn có thể sử dụng bất kỳ địa phương nào có sẵn, ví dụ:
    moment.tz.setDefault(tz);
    
    8 cho Mexico hoặc
    moment.tz.setDefault(tz);
    
    9 cho Canada. Nếu bạn cần thêm thông tin về tham số này, hãy xem các tài liệu MDN.
  2. Đối tượng
    moment.tz.setDefault('America/Los_Angeles');
    
    0 nơi chúng tôi đã chỉ định thuộc tính
    moment.tz.setDefault('America/Los_Angeles');
    
    1. Đọc thêm về đối tượng
    moment.tz.setDefault('America/Los_Angeles');
    
    0 trong tài liệu MDN.

Bạn có thể tìm thấy một bảng của mã quốc gia và tên cơ sở dữ liệu múi giờ bằng cách truy cập trang wikipedia này.

Tuy nhiên, lưu ý rằng đối tượng

moment.tz.setDefault(tz);
2 trong JavaScript không lưu trữ múi giờ.

Nó lưu trữ một dấu thời gian đại diện cho số mili giây đã trôi qua kể từ nửa đêm ngày 1 tháng 1 năm 1970.

Ngày và thời gian của đối tượng

moment.tz.setDefault(tz);
2 tương ứng với múi giờ, tuy nhiên đối tượng
moment.tz.setDefault(tz);
2 không có cách nào để lưu trữ múi giờ cụ thể.

Vì lý do này, tốt nhất là sử dụng phương thức

moment.tz.setDefault(tz);
6 để có được một chuỗi đại diện cho múi giờ và sử dụng tham số đối tượng
moment.tz.setDefault('America/Los_Angeles');
0 để định dạng chuỗi theo nhu cầu của bạn.

Bạn có thể sử dụng các thuộc tính khác nhau trên đối tượng

moment.tz.setDefault('America/Los_Angeles');
0 của phương thức
moment.tz.setDefault(tz);
6 để định dạng ngày và thời gian cho múi giờ cụ thể theo các cách khác nhau.

Copied!

const date = new Date(); console.log( date.toLocaleString('en-US', { timeZone: 'America/New_York', dateStyle: 'full', timeStyle: 'full', }), ); // 👉️ "Sunday, January 16, 2022 at 4:42:40 AM Eastern Standard Time"

Chúng tôi đặt các thuộc tính

moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
0 và
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
1 trong đối tượng
moment.tz.setDefault('America/Los_Angeles');
0 thành
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
3 để có thêm biểu diễn dài dòng của ngày và giờ.

Các giá trị có thể khác cho hai thuộc tính là:

moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
4,
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
5 và
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
6.

Copied!

const date = new Date(); console.log( date.toLocaleString('en-US', { timeZone: 'America/New_York', dateStyle: 'short', timeStyle: 'short', }), ); // 👉️ "1/16/22, 4:43 AM"

Bạn có thể xem tất cả các thuộc tính và giá trị mà đối tượng

moment.tz.setDefault('America/Los_Angeles');
0 thực hiện bằng cách truy cập các tài liệu MDN.

Dưới đây là một ví dụ hiển thị tháng, ngày, giờ, phút và giây dưới dạng 2 chữ số, ngay cả khi giá trị của chúng nhỏ hơn

moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
8.

Copied!

const date = new Date(); console.log( date.toLocaleString('en-US', { timeZone: 'America/New_York', year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit', timeZoneName: 'short', }), ); // 👉️ "01/16/2022, 04:43:39 AM EST"

Bằng cách đặt các giá trị của các thành phần ngày và thời gian thành

moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
9 chữ số, chúng tôi định dạng chúng một cách nhất quán, ngay cả khi chúng có giá trị nhỏ hơn
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
8.

Nếu đó là trường hợp, các giá trị được đệm bằng số 0 hàng đầu.

Chúng tôi cũng đặt thuộc tính

moment.utc('2016-12-25 07:00').tz('America/Los_Angeles').format('ddd, Do MMMM YYYY, h:mma');
1 thành giá trị
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
6, để hiển thị chữ viết tắt của tên múi giờ ở cuối kết quả.

Bạn có thể xem tất cả các thuộc tính khác mà đối tượng

moment.tz.setDefault('America/Los_Angeles');
0 hỗ trợ bằng cách truy cập các tài liệu MDN.

Bạn có thể nhận được một biểu diễn ngày và thời gian cụ thể của múi giờ được định dạng theo nhiều cách khác nhau chỉ bằng cách sử dụng phương pháp

moment.tz.setDefault(tz);
6 và đây phải là cách tiếp cận ưa thích của bạn vì nó tận dụng chức năng tích hợp.

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.

JavaScript có mặc định cho UTC không?

Ngày JavaScript luôn được lưu trữ dưới dạng UTC và hầu hết các phương thức gốc tự động định vị kết quả., and most of the native methods automatically localize the result.

GetTimezoneOffset trở lại là gì?

Phương thức 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.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.

Ngày JavaScript là thời gian nào?

Đối tượng ngày của JavaScript theo dõi thời gian theo dõi UTC trong nội bộ, nhưng thường chấp nhận đầu vào và tạo ra đầu ra trong thời gian cục bộ của máy tính mà nó đang chạy.UTC internally, but typically accepts input and produces output in the local time of the computer it's running on.