JavaScript Temporal sắp xuất hiện
(developer.mozilla.org)- Tổng quan
- Việc triển khai đối tượng JavaScript Temporal đã bắt đầu được phát hành trong các phiên bản thử nghiệm của trình duyệt
- Việc xử lý ngày và giờ cho các nhà phát triển web sẽ được đơn giản hóa và hiện đại hóa đáng kể
- Có thể sử dụng các tính năng tích hợp sẵn hiệu quả và chính xác trong các ứng dụng xử lý lịch biểu, quốc tế hóa và dữ liệu liên quan đến thời gian
- Các vấn đề của đối tượng JavaScript
Date
- Được tạo ra bằng cách sao chép triển khai ban đầu của
java.util.Datetrong Java năm 1995 - Chỉ hỗ trợ giờ địa phương của người dùng và UTC, không hỗ trợ múi giờ
- Hành vi phân tích cú pháp rất thiếu ổn định và đối tượng có thể thay đổi được (mutable)
- Khó tính toán giờ tiết kiệm ánh sáng ban ngày (DST) và các thay đổi lịch sử của lịch
- Các tính năng chính của Temporal
- Được thiết kế như một sự thay thế hoàn chỉnh cho đối tượng
Date - Hỗ trợ biểu diễn múi giờ và lịch
- Cung cấp hơn 200 phương thức tiện ích
- Bao gồm nhiều chức năng như chuyển đổi, so sánh, tính toán và định dạng
- Tình hình hỗ trợ trên trình duyệt
- Firefox hiện có bản triển khai trưởng thành nhất
- Được cung cấp như một tính năng thử nghiệm trong Firefox Nightly
- Safari và Chrome cũng đang trong quá trình triển khai
- Có thể thử nghiệm qua
@js-temporal/polyfilltrên trang tài liệu TC39
- Các thành phần cốt lõi
Duration: chênh lệch giữa hai thời điểmInstant: dấu thời gianZonedDateTime: ngày/giờ có múi giờPlainDateTime: ngày/giờ không có múi giờ- Cung cấp thêm nhiều lớp khác liên quan đến ngày/giờ
API mới này được kỳ vọng sẽ mang đến một cách tiếp cận hiện đại để xử lý ngày và giờ trong JavaScript.
6 bình luận
Tin nhắn trả lời của chàng crush đến quá muộn
Bản triển khai
Dateban đầu cũng vay mượn nhiều từ Java, và việc triển khai Temporal cũng lấy khá nhiều từ Java, nên tôi thấy tự hỏi nếu đã vậy thì có nhất thiết phải mất đến từng này thời gian không.Java 8 có
LocalDateTimelà từ năm 2014, nên nếu Temporal được triển khai sớm hơn dựa trên nền tảng này thì có lẽ đã không cần bị phân mảnh thành nhiều thư viện bên thứ ba khác nhau như vậy.Ơ ơ, nghe quen lắm ở đâu đó...
Ngoại trừ việc đổi
LocalDateTimethànhPlainDateTimethì gần như y hệt Java…Có thì cũng tốt đấy… nhưng không biết có cần phải làm tới mức này không…
Trước đây, để quản lý thời gian theo nhiều múi giờ, phải dùng thư viện hoặc tự triển khai với việc cân nhắc nhiều điều kiện; nếu đi theo hướng được hỗ trợ sẵn thì sẽ tốt hơn.