Tôi đang sử dụng Moment.js để phân tích cú pháp và định dạng ngày trong ứng dụng web của mình. Là một phần của đối tượng JSON, máy chủ phụ trợ của tôi gửi ngày dưới dạng một số mili giây từ kỷ nguyên UTC (bù đắp Unix).Moment.js: Ngày định dạng trong một múi giờ cụ thể
Parsing ngày trong một múi giờ cụ thể rất dễ dàng - chỉ cần thêm các nhận dạng múi giờ RFC 822 đến hết chuỗi trước khi phân tích cú pháp:
// response varies according to your timezone
moment('3/11/2012 13:00').utc().format("MM/DD HH:mm")
// problem solved, always "03/11 17:00"
moment('3/11/2012 13:00 -0400').utc().format("MM/DD HH:mm")
Nhưng làm thế nào để định dạng một ngày trong một specifc múi giờ? Tôi muốn kết quả nhất quán bất kể thời gian hiện tại của trình duyệt, nhưng tôi không muốn hiển thị ngày trong UTC.
Hiện tại, chúng chưa hỗ trợ điều này, nhưng chúng đang thực hiện. https://github.com/timrwood/moment/pull/671 – Ben
Điều này chỉ hoạt động. Nếu bạn vượt qua thời điểm một chuỗi thời gian bao gồm độ lệch mong muốn, thì nó sẽ giữ lại độ lệch đó và hiển thị thời gian cục bộ như đã cho, thay vì tự động điều chỉnh theo thời gian trình duyệt cục bộ. Nếu tôi muốn nó để điều chỉnh thời gian trình duyệt địa phương, sau đó tôi muốn cung cấp cho nó một thời gian UTC thay vì rõ ràng cho nó một bù đắp để sử dụng. Ý tôi là ... tôi cho nó một sự bù đắp rõ ràng, tại sao nó cơ bản ăn nó và làm việc chuyển đổi riêng của nó sang các trình duyệt được bù đắp. Thiết kế khủng khiếp. – Triynko
@Triynko bù đắp phải được tiết kiệm ánh sáng ban ngày, vì vậy, nó không phải lúc nào cũng hoạt động như mong đợi. – pinkpanther