Unlimited Design & Technology

Dữ liệu và hệ thống nghiệp vụ

Làm rõ ngày giờ và múi giờ trước khi xây tính năng lịch

Tính năng lịch cần nhiều hơn một cột thời gian. Hãy phân biệt ngày, cuộc hẹn địa phương, thời điểm toàn cục và quy tắc lặp để đổi địa điểm hoặc giờ mùa hè không âm thầm đổi cam kết nghiệp vụ.

UDT Insights07/04/2022
Một đồng nghiệp liên kết tờ lịch với đồng hồ và quả địa cầu. Một đồng nghiệp ngồi ghi chép.

Ngày giao hàng, giờ họp và giờ mở cửa hằng ngày trông gần giống nhau trên lịch. Nhưng chúng thể hiện cam kết khác nhau. Dùng một kiểu thời gian chung sẽ đẩy giả định ngầm vào nhắc việc, báo cáo và tích hợp. Hãy hiểu người dùng muốn nói gì trước khi chọn kiểu lưu trữ hoặc vẽ màn hình lịch.

Tách bốn loại ý nghĩa

Cam kết chỉ có ngày nói đến một ngày trên lịch, không phải thời điểm. Thời điểm xác định một lần xảy ra trên trục thời gian chung. Cuộc hẹn địa phương chỉ giờ đồng hồ tại một nơi. Quy tắc lặp mô tả hành vi địa phương lặp lại. Hỏi từng trường mang nghĩa nào và cam kết đi theo địa điểm hay người xem.

PostgreSQL cung cấp các kiểu date, time, timestamp và interval riêng.[5] Chúng hỗ trợ biểu diễn giá trị nhưng không thay quyết định sản phẩm. Khoảng thời gian giữa hai sự kiện không mặc nhiên tương đương cuộc hẹn lặp ở cùng giờ địa phương.

Giữ múi giờ khi quy tắc cần

Với timestamp with time zone, PostgreSQL lưu nội bộ theo UTC và không giữ múi giờ được nêu ban đầu.[5] Nếu nghiệp vụ cần địa điểm cuộc hẹn hoặc lịch lặp địa phương trong tương lai, hãy lưu múi giờ riêng. Đừng kỳ vọng chỉ giá trị thời điểm sẽ giữ được ý định lập lịch ban đầu.

Nên dùng tên múi giờ cho quy tắc theo địa điểm và có chính sách rõ khi đổi giờ mùa hè. Với giờ địa phương lặp, quy định người dùng muốn chọn lần xuất hiện nào. Với giờ bị bỏ qua khi đổi đồng hồ, xác định cách phản ứng. Hỏi người dùng hoặc áp dụng quy tắc đã công bố, thay vì âm thầm đoán.

Ví dụ giả định: lịch đào tạo nhiều vùng

Một đơn vị đào tạo giả định tổ chức buổi học lúc chín giờ sáng tại văn phòng chủ trì. Người tham gia từ xa thấy thời điểm tương ứng theo địa phương của mình. Lịch văn phòng giữ tên múi giờ, còn mỗi người chọn múi giờ hiển thị. Thư mời cho thấy cả mốc văn phòng và góc nhìn người tham gia.

Với buổi học lặp, đơn vị xác định liệu chín giờ có luôn là giờ văn phòng khi độ lệch theo mùa đổi hay không. Việc này cần thêm quy tắc lặp và kiểm thử. Nó tránh biến chuyển đổi hiển thị thuận tiện thành thay đổi ngoài ý muốn đối với chính cam kết.

Cho người vận hành thấy ranh giới

Hiển thị múi giờ liên quan cạnh ô nhập, xác nhận và tệp xuất. Nêu múi giờ quyết định ngày báo cáo hoặc hạn chót. Quy định có tính mốc kết thúc hay không. Chi tiết này quan trọng khi nhóm này kết thúc việc còn nhóm khác đã sang ngày lịch tiếp theo.

Độ phức tạp phải theo nhu cầu thật. Danh sách ngày nghỉ của văn phòng địa phương có thể chỉ cần ngày. Đừng thêm thời điểm nửa đêm giả tạo để vừa một thành phần dùng chung. Ngược lại, đừng dùng trường chỉ có ngày cho hạn chót chính xác xuyên vùng. Xem lại phân loại khi mở rộng sang địa điểm mới. Trong kiểm thử nghiệm thu, nhờ người vận hành xác nhận một thư mời qua nhiều múi giờ và bản sửa của nó, rồi kiểm tra cam kết vẫn được hiểu đúng.

  • Gắn nhãn trường là ngày, thời điểm, hẹn địa phương hay lặp.
  • Giữ tên múi giờ cho quy tắc theo địa điểm.
  • Quy định cách xử lý giờ bị bỏ qua hoặc lặp.
  • Chốt múi giờ ngày báo cáo và ranh giới hạn chót.
  • Kiểm thử vòng hiển thị, xuất, nhắc và chỉnh sửa.

Tài liệu tham khảo

Trao đổi về dự án của bạn

Cùng UDT xác định nhu cầu và bước triển khai tiếp theo.

Liên hệ UDT
Zalo