Изменить формат отображения ввода типа даты Symfony

Из help test:

  STRING1 > STRING2
                 True if STRING1 sorts after STRING2 lexicographically.

Внутри bash использует strcoll() или strcmp() для этого:

else if ((op[0] == '>' || op[0] == '<') && op[1] == '\0')
  {
    if (shell_compatibility_level > 40 && flags & TEST_LOCALE)
      return ((op[0] == '>') ? (strcoll (arg1, arg2) > 0) : (strcoll (arg1, arg2) < 0));
    else
      return ((op[0] == '>') ? (strcmp (arg1, arg2) > 0) : (strcmp (arg1, arg2) < 0));
  }

Последний фактически сравнивает коды ASCII, первый (используется, когда локаль включена) выполняет более конкретное сравнение, которое подходит для сортировки в заданной локали.

1
задан Chamath Madusanka 18 March 2019 в 15:56
поделиться

1 ответ

Есть две опции:

  • использовать html5 (ваша текущая настройка). В этом случае документация гласит: «Если вы хотите, чтобы ваше поле отображалось как поле даты« HTML5 », вам необходимо использовать виджет single_text с форматом yyyy-MM-dd ...». На самом деле браузер показывает HTML5-виджет со значением 30/12/2019, но отправляет 2019-12-30 при отправке. Проверьте себя: https://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_date

  • не используйте html5:

$builder->add('date_created', DateType::class, [
    'widget' => 'single_text',
    'html5' => false,
    'format' => 'yyyy-MM-dd',
]);

Вы сможете установить и отправить дату в формате yyyy-MM-dd.

0
ответ дан VladRia 18 March 2019 в 15:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: