[РЕДАКТИРОВАТЬ]: Я думаю, у людей была проблема, чтобы понять, что я имею в виду, поэтому полностью переписал свои объяснения.
Я работаю над проектом, в котором пользователи могут определять формат даты, используемый на всем сайте. Он использует стандарт формата даты PHP. Например: "year-month-day" устанавливается "Y-m-d".
Стандарт PHP использует односимвольные символы, такие как Y, m, d, F, j, чтобы описать формат даты. Как видно из документации: http://www.php.net/manual/fr/function.date.php
Иногда пользователи могут выбирать дату благодаря jQueryUI Datepicker. Этот компонент описывает формат даты с кодовыми словами типа yy, y, mm, dd, D,... http://api.jqueryui.com/datepicker/#utility-formatDate
Я хотел бы отображать даты в том же формате как для PHP, так и для Datepicker. Я имею в виду, что PHP должен выводить дату как в формате, заданном пользователем, так и Datepicker должен показывать выбранную дату в в том же формате.
Учитывая, что:
- Формат даты обязательно описывается "PHP-стиль"
- Я не знаю априори, какой формат был задан пользователями
/!\Это не проблема того, как читать/анализировать/отображать дату из известного формата.
К сожалению, описание формата даты Javascript не такое же, как в PHP. Например, эти 2 формата даты эквивалентны, но описаны по-разному в PHP и Javascript:
- PHP: Y-m-d (устанавливается пользователями)
- Javascript: yy-mm-dd
Как вы можете видеть, я не могу просто настроить datepicker с форматом даты PHP, потому что он будет неправильно понят или вообще не будет распознан.
Кто-то (в ответах ниже) советовал создать мой собственный "стандартный конвертер формата даты", сопоставляя каждый символ PHP с его эквивалентом в описании формата даты JS. Также как:
- Y = > yy
- m = > mm
- d = > dd
- y = > y
- z = > o
- ...
И затем замените каждый символ PHP на JS. И так "d/m/Y" будет волшебным образом переведен на "dd/mm/yy".
Но, может быть, кто-то знает еще один правильный способ сделать jQueryUI Datepicker понятным стандартом даты даты PHP?
EDIT: я написал учебное пособие, в котором объясняются как проблема, так и решение. Для дальнейшего чтения: http://tristan-jahier.fr/blog/2013/08/convertir-un-format-de-date-php-en-format-de-date-jqueryui-datepicker