Chuyển đổi thời gian địa phương sang UTC bằng JavaScript #
Sử dụng phương thức toUTCString[]
để chuyển đổi thời gian địa phương sang UTC, ví dụ: new Date[].toUTCString[]
. Phương thức toUTCString[]
chuyển đổi một ngày thành một chuỗi, sử dụng múi giờ UTC.
Copied!
const date = new Date[]; // 👇️ Sat Jan 15 2022 16:49:31 GMT+0200 console.log[date]; const utcStr = date.toUTCString[]; console.log[utcStr]; // 👉️ "Sat, 15 Jan 2022 14:49:31 GMT" // 👇️ "14:49:31" console.log[ [ padTo2Digits[date.getUTCHours[]], padTo2Digits[date.getUTCMinutes[]], padTo2Digits[date.getUTCSeconds[]], ].join[':'], ]; function padTo2Digits[num] { return num.toString[].padStart[2, '0']; }
Chúng tôi đã sử dụng ToutcString để chuyển đổi thời gian địa phương sang UTC.
Biến date
lưu trữ ngày trong giờ địa phương của tôi, đó là UTC+0200.
Khi tôi chuyển đổi ngày và giờ sang UTC, tôi nhận được kết quả là 2 giờ vì múi giờ của tôi [thời gian tiêu chuẩn Đông Âu] cách UTC 2 giờ.
Nếu bạn cần một đối tượng Date
mới với thời gian UTC thay vì một chuỗi, hãy sử dụng phương pháp này thay thế.
Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
Về cơ bản, chúng tôi đã cắt bỏ phần GMT
của chuỗi UTC và chuyển kết quả cho hàm tạo ____1010.
Bạn cũng có thể sử dụng phương thức
1 để có được một chuỗi ở định dạng ISO 8601 làCopied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
2.Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
3 ở cuối định dạng có nghĩa là UTC, nghĩa là, một phần bù từ UTC bằng 0 giờ, phút và giây.Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
Copied!
const date = new Date[]; const isoStr = date.toISOString[]; console.log[isoStr]; // 👉️ "2022-01-15T14:49:31.612Z"
Phương thức
4 trả về một chuỗi đại diện cho ngày ở định dạng ISO 8601, theo thời gian phổ quát.Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
Các chuỗi được định dạng ISO 8601 thường được sử dụng để lưu trữ ngày và giờ trên máy chủ.
Nếu bạn chỉ cần thời gian ở UTC, bạn có thể sử dụng hàm sau, định dạng thời gian UTC là
5.Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
Copied!
const date = new Date[]; function padTo2Digits[num] { return num.toString[].padStart[2, '0']; } function getGMTTime[date = new Date[]] { return [ padTo2Digits[date.getUTCHours[]], padTo2Digits[date.getUTCMinutes[]], padTo2Digits[date.getUTCSeconds[]], ].join[':']; } console.log[getGMTTime[]]; // 👉️️ "14:49:31"
Chúng tôi đã tạo ra một hàm có thể tái sử dụng trả về thời gian trong GMT, được định dạng là
5.Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
Hàm có một đối tượng Date
theo mặc định, nhưng nếu một người không được cung cấp, nó sẽ trả về thời gian UTC hiện tại.
Phương thức GetStchours trả về giờ [0 - 23] trong ngày được chỉ định, theo thời gian phổ quát.
Phương pháp Getutcminutes trả về biên bản [0 - 59] trong ngày, theo thời gian phổ quát.
Phương thức getutcseconds trả về các giây [0 - 59] trong ngày, theo thời gian phổ quát.
Nếu bạn cần sử dụng bất kỳ phương pháp
8 nào khác, ví dụ:Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
9, truy cập các tài liệu MDN.Copied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
Trong chức năng, chúng tôi đảm bảo hiển thị giờ, giây và phút là 2 chữ số, ngay cả khi chúng nhỏ hơn
0.Copied!
const date = new Date[]; const isoStr = date.toISOString[]; console.log[isoStr]; // 👉️ "2022-01-15T14:49:31.612Z"
Theo mặc định, nếu bất kỳ giá trị nào nhỏ hơn Copied!
const date = new Date[];
const isoStr = date.toISOString[];
console.log[isoStr]; // 👉️ "2022-01-15T14:49:31.612Z"
0, các phương thức trả về một chữ số, đó không phải là thứ chúng ta muốn.Chúng tôi đệm kết quả nếu cần thiết và tham gia với chúng với một dấu phân cách đại tràng.
Bạn có thể điều chỉnh điều này tùy thuộc vào trường hợp sử dụng của bạn, ví dụ: Bao gồm các giá trị năm, tháng, ngày của tháng trong chuỗi được định dạng.
Có một tương đương không tương đương cho mỗi phương pháp này, ví dụ như getutclyear so với getlyear.
Các phương thức
8 trả về thành phần ngày hoặc thời gian theo thời gian phổ quát, trong khi các phương thứcCopied!
const date = new Date[]; const utcDate = new Date[localDate.toUTCString[].slice[0, -4]];
3 trả về chúng theo thời gian địa phương [múi giờ mà máy tính của khách truy cập đang ở].Copied!
const date = new Date[]; const isoStr = date.toISOString[]; console.log[isoStr]; // 👉️ "2022-01-15T14:49:31.612Z"
Các phương thức
3 trả về các kết quả khác nhau tùy thuộc vào nơi người dùng truy cập trang web của bạn.Copied!
const date = new Date[]; const isoStr = date.toISOString[]; console.log[isoStr]; // 👉️ "2022-01-15T14:49:31.612Z"
Ví dụ: nếu bạn lưu trữ một thời gian địa phương vào nửa đêm [00:00] trong cơ sở dữ liệu của bạn, bạn sẽ không biết đó có phải là nửa đêm ở Tokyo [Nhật Bản], ở Paris [Pháp], ở New York [Hoa Kỳ], v.v. là tất cả những khoảnh khắc khác nhau cách nhau hàng giờ.
Để thống nhất, bạn chủ yếu nên sử dụng thời gian địa phương khi bạn phải kết xuất ngày và giờ cho người dùng, nhưng lưu trữ các giá trị thực tế trong UTC.