DateTime Picker
A combined date and time picker built on Flatpickr. Captures a full date-time value in a single field. Configurable date format, 12h/24h clock, minute increment, and optional min/max constraints.
Pro field
DateTime Picker requires the Extra Fields for ACF Pro license.
Settings
| Setting | Default | Options | Description |
|---|---|---|---|
| Date Format | Y-m-d | Any PHP date format | Controls how the date portion appears in the admin UI. |
| Time Format | 24h | 24h · 12h | Clock format in the time picker. 12h shows AM/PM. |
| Minute Step | 5 | 1 · 5 · 10 · 15 · 30 | Increment between selectable minutes. |
| Min DateTime | (empty) | Y-m-d H:i | Earliest selectable date/time. |
| Max DateTime | (empty) | Y-m-d H:i | Latest selectable date/time. |
| Include Seconds | false | on/off | Show a seconds selector in the time picker. |
| Return Format | Y-m-d H:i:s | Y-m-d H:i:s · U · DateTime object | Storage/return format. |
Return values
return_format: 'Y-m-d H:i:s'
Returns a MySQL-compatible timestamp string.
$dt = get_field('event_start');
// "2026-06-15 14:30:00"
return_format: 'U'
Returns a Unix timestamp integer.
$ts = get_field('event_start');
// 1750000200
return_format: 'object'
Returns a PHP DateTime object.
$dt = get_field('event_start');
// DateTime object
echo $dt->format('D, M j, Y g:i A'); // "Mon, Jun 15, 2026 2:30 PM"
Usage
Displaying a formatted date-time
$raw = get_field('webinar_time'); // "2026-06-15 14:30:00"
if ($raw) {
$dt = new DateTime($raw, new DateTimeZone('UTC'));
$dt->setTimezone(new DateTimeZone('America/New_York'));
echo '<time datetime="' . esc_attr($dt->format('c')) . '">';
echo esc_html($dt->format('F j, Y \a\t g:i A T'));
echo '</time>';
// "June 15, 2026 at 10:30 AM EDT"
}
Checking if an event is upcoming
$start = get_field('event_start'); // Y-m-d H:i:s
if ($start) {
$event_dt = new DateTime($start);
$now = new DateTime();
if ($event_dt > $now) {
echo '<span class="badge badge-upcoming">Upcoming</span>';
} else {
echo '<span class="badge badge-past">Past event</span>';
}
}
Sorting posts by datetime field
$events = get_posts([
'post_type' => 'event',
'meta_key' => 'event_start',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => [[
'key' => 'event_start',
'value' => current_time('mysql'),
'compare' => '>=',
'type' => 'DATETIME',
]],
]);