[EDIT]: Tôi đoán mọi người có vấn đề để hiểu chính xác ý tôi, vì vậy tôi đã viết lại hoàn toàn những lời giải thích của mình.Chuyển đổi định dạng ngày PHP sang định dạng ngày tháng DateBox của jQueryUI
Tôi làm việc trên một dự án mà người dùng có thể xác định định dạng ngày được sử dụng trong toàn bộ trang web. Nó sử dụng chuẩn định dạng ngày tháng PHP. Ví dụ: "year-month-day" được đặt bởi "Y-m-d".
Chuẩn PHP sử dụng ký hiệu một ký tự đơn lẻ như Y, m, d, F, j để mô tả định dạng ngày. Như đã thấy trong tài liệu: http://www.php.net/manual/fr/function.date.php
Đôi khi người dùng có thể chọn ngày nhờ vào một DatePicker jQueryUI. Thành phần này mô tả định dạng ngày của mình với mã những từ như yy, y, mm, dd, D, ... http://api.jqueryui.com/datepicker/#utility-formatDate
Tôi muốn hiển thị ngày tháng theo định dạng tương tự cho cả PHP và datepicker. Tôi có nghĩa là PHP sẽ xuất ngày theo định dạng do người dùng đặt, VÀ Datepicker sẽ hiển thị ngày đã chọn trong cùng định dạng.
Cho rằng:
- Định dạng ngày được thiết được mô tả "PHP phong cách"
- tôi có thể không biết một tiên nghiệm mà định dạng đã được thiết lập bởi người dùng
/! \ Đây không phải là vấn đề về cách đọc/phân tích/hiển thị ngày từ định dạng đã biết.
Thật không may, mô tả định dạng ngày Javascript không giống như trong PHP. Ví dụ, những 2 định dạng ngày là tương đương nhưng được mô tả khác nhau trong PHP và Javascript:
- PHP: Ymd (thiết lập bởi người sử dụng)
- Javascript: yy-mm-dd
Như bạn có thể thấy, tôi không thể chỉ định cấu hình datepicker với định dạng ngày tháng PHP, bởi vì nó sẽ bị hiểu lầm hoặc không được công nhận.
Một người nào đó (trong câu trả lời bên dưới) đã đề nghị tạo "công cụ chuyển đổi định dạng ngày tháng" của riêng tôi, phù hợp với mỗi biểu tượng PHP tương đương với mô tả định dạng ngày tháng JS. Giống như:
- Y => yy
- m => mm
- d => dd
- y => y
- z => o
- ...
Và sau đó thay thế mỗi biểu tượng PHP bằng ký hiệu JS. Và vì vậy "d/m/Y" sẽ được dịch thành "dd/mm/yy", một cách kỳ diệu.
Nhưng có lẽ ai đó biết cách thích hợp khác để làm cho jQueryUI Datepicker hiểu chuẩn định dạng ngày tháng PHP?
EDIT: Tôi đã viết hướng dẫn giải thích cả vấn đề và giải pháp. Để đọc thêm: http://tristan-jahier.fr/blog/2013/08/convertir-un-format-de-date-php-en-format-de-date-jqueryui-datepicker
Không gửi định dạng ngày tháng ngoài PHP - luôn gửi định dạng cố định đã biết, để Javascript sẽ biết những gì mong đợi. Đừng mong đợi để có thể "xử lý tự động bất kỳ định dạng ngày nào", bởi vì về cơ bản là không thể có được quyền (do sự mơ hồ giữa các định dạng thường được sử dụng khác nhau). Toàn bộ điểm sử dụng bộ chọn ngày javascript là mã của bạn không bao giờ cần phải xử lý các ngày theo bất kỳ định dạng nào; bạn là lập trình viên nên có toàn quyền kiểm soát định dạng, vì vậy chỉ cần chọn một chương trình tốt ('yyyy-mm-dd' nói chung là tốt nhất) và gắn bó với nó. – Spudley
Tôi hiểu suy nghĩ của bạn. Nhưng đây không phải là vấn đề của tôi. Trong thực tế, tôi muốn người dùng thấy ngày được hiển thị bởi Datepicker trong cùng một định dạng như được hiển thị bởi: 'echo $ date-> format (" any_format "); ' –
vlttp: đây là một thứ được gửi tôi điên tất cả các lần. Mỗi ngôn ngữ khác tôi đã sử dụng trong 20 năm qua sử dụng đơn char cho chữ số duy nhất và char đôi cho chữ số kép với đệm cuối cùng với số không. Tại sao địa ngục PHP-là gần như hoàn hảo trong tất cả mọi thứ khác- phải được rất khác nhau trong này? Và, trong một khu vực (Dates) đã được khá hỗn loạn của chính nó !! – motoDrizzt