Tôi đang làm việc trên một ứng dụng cho phép người dùng chỉnh sửa một số ngày trong biểu mẫu. Ngày được hiển thị theo định dạng Châu Âu (DD-MM-YYYY) trong khi cơ sở dữ liệu sử dụng định dạng YYYY-MM-DD mặc định.Cách xử lý nhập ngày tháng trong Laravel
Có một số cách để mã hóa/giải mã dữ liệu này qua lại từ các cơ sở dữ liệu cho người dùng, nhưng tất cả đều đòi hỏi phải có nhiều mã:
- Sử dụng một hàm helper để chuyển đổi ngày trước khi lưu và sau khi lấy (rất cồng kềnh, đòi hỏi nhiều code)
- Tạo một thuộc tính riêng biệt cho từng thuộc tính ngày tháng, và sử dụng các phương pháp
setNameAttribute
vàgetNameAttribute
để giải mã/mã hóa (còn cồng kềnh và xấu xí, đòi hỏi phải có bản dịch thêm/quy tắc cho mỗi thuộc tính) - Sử dụng JavaScript để chuyển đổi ngày khi người nói ding và gửi biểu mẫu (không đáng tin cậy)
Vậy cách hiệu quả nhất để lưu trữ, truy xuất và xác thực ngày và giờ từ người dùng là gì?
Bạn có muốn xem liệu bạn có thể đạt được những gì bạn muốn bằng Carbon được tích hợp vào laravel không? – MikeWu
Ngày phân tích chính nó không phải là vấn đề, tôi đã sử dụng Carbon cho điều đó. Vấn đề là nơi để đặt mã để chuyển đổi ngày, tôi không muốn thêm tấn mã chuyển đổi lặp lại trong bộ điều khiển/lượt xem của tôi. Ngoài ra Carbon ném một ngoại lệ khi bạn cố gắng phân tích một ngày có định dạng sai, đây không phải là lý tưởng khi giao dịch với đầu vào của người dùng. – Arne