Не существует «универсального стандарта символа формата даты».Символ «у» может быть двухзначным годом, четырехзначным годом или даже трехбуквенным сокращенным месяцем (маловероятно) в зависимости от источника.
Символы форматирования для IntlDateFormatter
задокументированы здесь .Как видно из документации, для этой реализации «d» - это дата без начальных нулей, а «dd» содержит ведущие нули.«М» и «ММ» представляют месяц с ведущими нулями.«Yy» - это год, состоящий из двух цифр.
Между этими символами и символами формата даты в пользовательском интерфейсе jQuery достаточно различий, поэтому вам потребуется карта данных для сопоставления символов формата IntlDateFormatter
с jQuery.Символы формата DatePicker для пользовательского интерфейса и наоборот.
Что-то вроде этого должно быть достаточным (не проверено):
// PHP => jQuery
$formatMap = array(
'dd' => 'dd',
'd' => 'd',
'MM' => 'mm',
'M' => 'mm',
'yy' => 'y'
// and so on...
);
После настройки карты вы можете создать свою IntlDateFormatter
на основе локали, преобразуйте символы этого формата в символы формата даты jQuery UI, а затем отправьте формат во внешний интерфейс.
Когда пользователь отправляет обратно выбранную дату, вы можете сделать то же самое в обратном порядке.чтобы вернуться к IntlDateFormatter
символам.На этом этапе вы можете использовать комбинацию IntlDateFormatter::setPattern()
, чтобы установить формат в стиле MySQL, и datefmt_format()
(или эквивалентный), чтобы фактически отформатировать опубликованную дату.
Надеюсь, это поможет.