Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[Form] TimeType with a reference_date, view_timezone and model_timezone with a widget to single_text is not displaying correctly with HTML5 enabled. #46137

Copy link
Copy link
Closed
@RSickenberg

Description

@RSickenberg
Issue body actions

Symfony version(s) affected

6.0.0 - 6.0.8

Description

Hello folks!

When creating a TimeType form field with the widget as single_text and timezones the displayed value is not properly formatted for the browser.

$fakeEntity = new \stdClass();
$fakeEntity->time = new \DateTime();

// Create the form field
->add('time', TimeType::class, [
    'html5' => true,
    'widget' => 'single_text',
    'view_timezone' => 'Europe/Paris',
    'model_timezone' => 'UTC',
    'reference_date' => new \DateTime('now', new \DateTimeZone('UTC')),
])

is outputting in HTML:

<input type="time" id="form_time" name="form[time]" required="required" class="shadow-sm focus:ring-blue focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md" value="2022-04-21 14:49">

How to reproduce

$fakeEntity = new \stdClass();
$fakeEntity->time = new \DateTime();

// Create the form field
->add('time', TimeType::class, [
    'html5' => true,
    'widget' => 'single_text',
    'view_timezone' => 'Europe/Paris',
    'model_timezone' => 'UTC',
    'reference_date' => new \DateTime('now', new \DateTimeZone('UTC')),
])

is outputting in HTML:

<input type="time" id="form_time" name="form[time]" required="required" class="" value="2022-04-21 14:49">

Possible Solution

My guess is here: form/Extension/Core/Type/TimeType.php:84

We are dealing with the reference_date on the PRE_SUBMIT event but it's maybe too soon? The date shouldn't be displayed yet with the option HTML5 enabled.

Additional Context

image

Here a result from my project with the reproduced step.

image

And the result if I remove the date from the value field.

image

And the result if I set HTML5 to false.

Many thanks & best regards 😊

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.