Datetime FAPI DX

Created on 13 September 2013, almost 12 years ago
Updated 22 July 2025, 21 days ago

There is a lot of thing that will end up confusing with our current date/time handling. We should be sticking to HTML5 input types to not confuse developers about what a drupal input type will give them.

Problem

The example I'll be refereeing to is the node add form.

When datetime module is not enabled we have: <input type="text"> and validation functions, all good.

When datetime is enabled:
array('#type' => 'datetime') will give you <input type="date"><input type="time"> and it will adjust for TZ. So that one is fine as 2 separated fields.
If I follow the doc to have a datetime-local element:
array('#type' => 'datetime-local', '#date_date_element' => 'datetime-local', '#date_time_element' => 'none') will give <input type="datetime-local"> as expected and it'll be adjusted for TZ.

So essentially Drupal datetime behaves like HTML datetime-local input. It still is pretty convoluted to make a HTML5 datetime-local input from Drupal datetime FAPI type.

There is also in system_element_info() this that I'm really not sure belongs:

  $types['date'] = array(
    '#input' => TRUE,
    '#theme' => 'date',
    '#theme_wrappers' => array('form_element'),
  );

Expected

array('#type' => 'date') => <input type="date">
array('#type' => 'time') => <input type="time">
array('#type' => 'datetime') => <input type="datetime"> with TZ information (either Z or an offset like +02:00). If no TZ information the value is not valid.
array('#type' => 'datetime-local') => <input type="datetime-local"> without any TZ information (we suppose datetime TZ is user TZ).

Date + time should only be one field, no need for a date field and a separated time field.

Related

META: Support HTML5 form input elements Active
#1496652: Add new HTML5 FAPI Element : datetime-local
#1972660: Add tests for the new HTML5 date elements 'date', 'datetime', 'datetime-local' and 'time'
#1835016: Polyfill date input type

📌 Task
Status

Active

Version

11.0 🔥

Component

datetime.module

Created by

🇫🇷France nod_ Lille

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024