Hiển thị ngày và thời gian Cách thực hiện đúng
Chúng tôi bắt gặp họ ngày và thời gian tốt, mỗi ngày. Khi nói đến Web, bạn có thể thấy chúng trong các ứng dụng di động, trong email, trong ứng dụng nhắn tin của bạn và nhiều nơi khác. Tuy nhiên, mặc dù nhìn thấy ngày và thời gian mỗi ngày và ở mọi nơi, chúng tôi vẫn chưa áp dụng một định dạng phổ quát cho nó.
Ví dụ: nếu tôi viết ngày 10/05/2015, bạn không bao giờ có thể chắc chắn rằng "10" là tháng hay ngày trừ khi tôi cho bạn biết tôi đến từ đâu. Đôi khi định dạng thay đổi, lần khác ngôn ngữ.
Điều quan trọng là khi các nhà phát triển web chúng tôi chú ý đến ngày và thời gian chúng tôi xử lý trong các dự án của mình, để chúng tôi có thể phục vụ họ cho các cư dân địa lý khác nhau không có bất kỳ xung đột. Trong bài viết này, chúng tôi sẽ thảo luận về những gì nên tránh và những gì để nắm lấy khi nói đến hiển thị thời gian.
Toàn cầu hóa
Giả sử chúng ta không muốn chuyển đổi và hiển thị các định dạng ngày và giờ khác nhau cho những người xem khác nhau trên khắp thế giới, chúng ta có thể làm gì? Chúng tôi chọn một định dạng toàn cầu và gắn bó với nó. Đây là nơi mà một số tiêu chuẩn đi vào chơi. Trước khi chúng ta đạt được điều đó, tôi phải khuyên W3C khuyên chúng ta nên sử dụng định dạng ngày ISO 8601 với múi giờ UTC.
ISO 8601
ISO 8601 mô tả một cách được quốc tế chấp nhận để thể hiện ngày và giờ bằng cách sử dụng số.
Và định dạng cho ngày hoàn thành là; YYYY-MM-DD
, ví dụ: 2015-07-28
YYYY = 4 chữ số năm
MM = 2 chữ số tháng (01 = tháng 1, v.v.)
DD = 2 chữ số ngày (01 đến 31)
Để hoàn thành ngày giờ;YYYY-MM-DDThh: mm: ss.s
, ví dụ: 2015-07-28T21: 15: 18,45
T = Để tách ngày và thời gian theo ISO 8601
mm = 2 chữ số phút (00 đến 59)
ss = 2 chữ số thứ hai (00 đến 59)
s = phần thập phân của một giây, 1 hoặc nhiều chữ số
Xin lưu ý rằng vì không có múi giờ nào được đề cập trong ví dụ trên, do đó, giả sử rằng thời gian nằm trong múi giờ địa phương. Nếu bạn đã quyết định sử dụng múi giờ UTC, chỉ cần thêm Z đến giá trị để biểu thị UTC
Ví dụ: 2015-07-28T21: 15: 18,45Z
Nhưng nếu bạn muốn hiển thị giờ địa phương, thì bạn có thể thêm bù múi giờ cho UTC giá trị trong các định dạng +hh: mm
hoặc là -hh: mm
khi cần.
Ví dụ: Chúng ta hãy giả sử 2015-07-28T21: 15: 18,45
nằm trong múi giờ EST (Giờ chuẩn miền đông), chậm hơn 5 giờ so với múi giờ UTC.
Để thể hiện nó với bù UTC, chúng tôi viết 2015-07-28T21: 15: 18,45-05: 00
tương đương với thời gian UTC 2015-07-29T02: 15: 18,45Z
.
Lần nữa Z được thêm vào để thể hiện rằng thời gian hiển thị là trong thời gian UTC.
UTC so với GMT
Cả hai đều giống nhau nhưng khác nhau. Đến bây giờ bạn có thể đã đi qua GMT ít nhất một lần; trong khi thiết lập thời gian trong điện thoại di động hoặc máy tính của bạn. Đây là múi giờ phổ biến nhất được công nhận trên toàn thế giới vì nó tồn tại lâu hơn UTC.
Mặc dù một số người có thể nói rằng cả hai đều giống nhau nhưng không phải vậy, UTC là người kế thừa của GMT và được Liên minh Viễn thông Quốc tế duy trì. Bạn nên tham khảo thời gian dựa trên UTC chứ không phải GMT.
Sử dụng tên của tháng
Tiêu chuẩn ISO chỉ sử dụng các số trong biểu diễn ngày để tránh mọi xung đột ngôn ngữ. Nhưng, nếu nội dung trong ứng dụng web của bạn sẽ bằng tiếng Anh, thì bạn nên xem xét việc viết ra hàng tháng bằng tiếng Anh thay vì bằng số.
Thay vì 2015-07-28
, 28 tháng 7 năm 2015
dễ hiểu hơn bởi nhiều người và ít gây nhầm lẫn.
Bản địa hóa
Đôi khi chúng tôi muốn rất cụ thể với các dịch vụ của mình và muốn đại diện cho ngày và giờ bằng các múi giờ và ngôn ngữ địa phương. Có nhiều thư viện và API có sẵn cho các nhà phát triển web để sử dụng và hiển thị ngày và giờ theo khu vực truy cập.
Bạn có thể lấy ngôn ngữ mặc định của trình duyệt bằng cách giải thích Ngôn ngữ chấp nhận
yêu cầu tiêu đề hoặc thông qua navigator.l Language hoặc navigator.browserL Language
Đối tượng JavaScript, nhưng phương pháp tốt nhất là cho phép người dùng chọn một miền trong ứng dụng của bạn vì những cách trước đây không đáng tin cậy lắm.
Khi bạn có ngôn ngữ, bạn có thể định dạng thời gian ngày theo nó, ví dụ như sử dụng API quốc tế hóa, bạn có thể định dạng một ngày bằng cách sử dụng toLocaleDateString
trong JavaScript, ví dụ, myDate.toLocaleDateString ('ko-KR')
sẽ trả về một ngày được định dạng theo định dạng được sử dụng ở Hàn Quốc bởi người bản xứ nói tiếng Hàn.
Giờ tiết kiệm ánh sáng ban ngày (DST)
Ở một số quốc gia, thời gian tiết kiệm ánh sáng ban ngày được thực hiện bằng cách chuyển tiếp đồng hồ thêm một giờ vào mùa hè để tận dụng thêm ánh sáng mặt trời. Hãy nhận biết DST để theo kịp giờ địa phương trong các dịch vụ của bạn.
Không có hai chữ số
Trong khi tùy chỉnh ngày và giờ để bản địa hóa, không sử dụng định dạng hai chữ số cho năm tại bất kỳ thời điểm nào. Chúng ta đã ở thế kỷ 21. Sử dụng nhiều năm như 64
, 99
vv sẽ gặp rắc rối trong tương lai. Nếu bạn đã có một hệ thống năm hai chữ số, hãy cân nhắc thay đổi nó.
Năm nhuận và các lịch khác
Hãy để chúng tôi kết thúc bài viết này với một số điều linh tinh cần nhớ trong khi xử lý ngày. Nếu bạn không sử dụng bất kỳ thư viện hoặc API nào cho ngày và muốn tự mình xử lý chúng (đó là không phải Tuy nhiên, được đề xuất), đừng quên hiển thị ngày 29 tháng 2 trong đầu vào cho những năm nhuận.
Ngoài ra, điều đáng chú ý là Lịch Gregorian không phải là hình thức lịch duy nhất có sẵn và được sử dụng trên toàn thế giới. Có rất ít lịch trong khu vực mà người dân địa phương theo dõi, đặc biệt là khi nói đến lễ hội.
Tài liệu tham khảo
- Liên minh Viễn thông Quốc tế: Tình trạng nghiên cứu Thời gian Quốc tế Phối hợp (UTC) tại ITU-R
- ISO: ISO 8601 - Định dạng ngày và giờ
- Wikipedia: Giờ phối hợp quốc tế
- Wikipedia: Giờ tiết kiệm ánh sáng ban ngày
- Wikipedia: Giờ chuẩn Greenwich
- Lưu ý W3C: Định dạng Ngày và Giờ
- Mẹo của W3C: Sử dụng định dạng ngày quốc tế (ISO)