Tôi có khá nhiều vấn đề giống hệt như bạn, tiết kiệm thời gian trong UTC là tốt [điều này được quyết định trong cấu hình apache cho phiên bản TWX của bạn và từ thông tin tôi nhận được khi thảo luận vấn đề này với tài nguyên PTC, không nên thay đổi
Tôi cần gửi giờ địa phương tới hệ thống in nhãn vì việc gửi giờ UTC trong trường hợp đó sẽ không hợp lý lắm
Tôi đã thử điều này chẳng hạn
hãy để văn bản = ngày mới[]. toLocaleString["en-US", {timeZone. "Mỹ/New_York"}];
Nhưng vì bất kỳ lý do gì, chỉ ngôn ngữ "en-US" của toLocaleString dường như hoạt động, timeZone thì không. Điều này có thể là do việc chạy một dịch vụ không giống như khi người dùng chạy một thứ gì đó trong trình duyệt không?
Một cách mà chúng tôi đã giải quyết đó là bù thời gian tính bằng phút như thế này
hãy để DateTimeIn = Ngày mới [];
var myTime = DateTimeIn. getTime[] + tôi. SiteTimeZone * 60000;
// ở đây chúng ta có cùng một vấn đề là chúng ta cần phải bù múi giờ, mà chúng ta đã đặt trong vài phút như "-240" chẳng hạn cho GMT-4[5?]
var DateIn_TZ_Adjusted = new Date[myTime];
var yyyy = DateIn_TZ_Adjusted. getFullYear[];
var mon = String[DateIn_TZ_Adjusted. getMonth[] + 1]. padStart[2, '0'];
var dd = String[DateIn_TZ_Adjusted. hẹn gặp[]]. padStart[2, '0'];
var hh = String[DateIn_TZ_Adjusted. getHours[]]. padStart[2, '0'];
var mm = String[DateIn_TZ_Adjusted. getMinutes[]]. padStart[2, '0'];
var ss = String[DateIn_TZ_Adjusted. getSeconds[]]. padStart[2, '0'];
// Soạn chuỗi đã định dạng
var DateAndTimeFormatted = yyyy + "-" + mon + "-" + dd + "T" + hh + ". " + ừm + ". " + ss;
kết quả = DateAndTimeFormatted;
Phần còn lại thì tôi không chắc lắm, nhưng tôi nghĩ đó chỉ là cách định dạng sau ngôn ngữ en-US
Nếu bất cứ ai có cách khác, chỉ sử dụng thời gian hệ thống [vì máy chủ của chúng tôi là cục bộ], vui lòng cho chúng tôi biết
Điều cần thiết đối với các ứng dụng web là hiển thị thời gian chính xác, đặc biệt là khi xử lý nhiều múi giờ. Đây là lúc chuyển đổi giữa UTC và giờ địa phương xuất hiện. Bài viết này sẽ thảo luận về giờ UTC và giờ địa phương, tại sao cần chuyển đổi giữa hai loại này và cách chuyển đổi giờ UTC sang giờ địa phương và ngược lại bằng Javascript
Hiểu UTC và Giờ địa phương
UTC [Giờ phối hợp quốc tế] là tiêu chuẩn quốc tế về thời gian. Đó là đồng hồ 24 giờ được sử dụng để chấm công quốc tế. UTC dựa trên thời gian của kinh tuyến gốc [kinh độ 0°] và được điều chỉnh để tính đến giây nhuận. UTC được sử dụng để đảm bảo rằng mọi thời gian đều giống nhau, bất kể nó được đo ở đâu trên thế giới. Nó là sự kế thừa của Giờ trung bình Greenwich [GMT]
Giờ địa phương là giờ hiển thị dựa trên múi giờ của người xem. Đó là thời gian được hiển thị ở khu vực địa phương và nó được điều chỉnh để tính đến thời gian tiết kiệm ánh sáng ban ngày. Giờ địa phương được hiển thị liên quan đến UTC và thường được hiển thị ở định dạng đồng hồ 12 giờ
Ví dụ
// the input is in ISO-8601 format
var utcDate = "2022-03-19T20:15:50.000Z";
var localDate = new Date[utcDate].toLocaleString["en-US", {
localeMatcher: "best fit",
timeZoneName: "short"
}];
console.log[localDate];
đầu ra
3/19/2022, 1:15:50 AM GMT-7
Lưu ý rằng đầu ra phụ thuộc vào vị trí của người dùng
Một vi dụ khac
var utcDate = new Date[Date.UTC[2022, 3, 19, 8, 20, 49]];
var localDate = utcDate.toLocaleString["en-US", {
dateStyle: "full",
timeStyle: "full"
}];
console.log[localDate];
đầu ra
Tuesday, April 19, 2022 at 1:20:49 AM Pacific Daylight Time
Ví dụ
var utcDate = new Date[Date.UTC[2022, 03, 19, 17, 39, 49]];
// Get local year, month, date, hour, minute, and second
console.log['Year:', utcDate.getFullYear[]];
console.log['Month:', utcDate.getMonth[]];
console.log['Date:', utcDate.getDate[]];
console.log['Hour:', utcDate.getHours[]];
console.log['Minute:', utcDate.getMinutes[]];
console.log['Second:', utcDate.getSeconds[]];
// Create a local date object in case you need to perform some operations
var localDate = new Date[
utcDate.getFullYear[],
utcDate.getMonth[],
utcDate.getDate[],
utcDate.getHours[],
utcDate.getMinutes[],
utcDate.getSeconds[]
];
Người dùng có múi giờ PDT [Giờ ban ngày Thái Bình Dương] sẽ nhận được kết quả này
Year: 2022
Month: 3
Date: 20
Hour: 12
Minute: 39
Second: 49
Sử dụng phương thức toISOString[]
Ví dụ
var localDate = new Date[];
console.log[localDate.toISOString[]];
Đây là đầu ra của tôi
2022-03-19T17:25:52.781Z
Đầu ra của bạn phụ thuộc vào vị trí của bạn và khi bạn chạy mã
Ví dụ
________số 8_______Bớt tư tưởng
Bạn đã học được một số kỹ thuật để biến giờ UTC thành giờ địa phương và ngược lại trong Javascript
Việc chuyển đổi giữa UTC sang giờ địa phương là cần thiết khi xử lý các ứng dụng nhạy cảm với thời gian. Ví dụ: nếu một cửa hàng trực tuyến đang hiển thị thời gian khi một đơn đặt hàng được đặt, điều quan trọng là phải đảm bảo thời gian hiển thị giống nhau bất kể khách hàng ở đâu
Ngoài việc hiển thị thời gian chính xác, việc chuyển đổi giữa giờ UTC và giờ địa phương cũng cần thiết khi xử lý dữ liệu và phân tích. Ví dụ: nếu một cửa hàng trực tuyến đang thu thập dữ liệu về thời điểm khách hàng mua hàng, điều quan trọng là đảm bảo dữ liệu được thu thập chính xác. Nếu dữ liệu được thu thập theo giờ UTC, nhưng các phân tích đang được hiển thị theo giờ địa phương, điều quan trọng là phải chuyển đổi dữ liệu để đảm bảo rằng các phân tích là chính xác
Nếu bạn có bất kỳ câu hỏi nào liên quan đến bài viết này, vui lòng để lại nhận xét. Chúng tôi rất vui khi được nghe từ bạn