Skip to content

Date, time, and date range ​

FieldStoresExample
DateA calendar dayThe date a book is published
TimeA time of day, with no date"Shop doors close at 21:00"
Date & TimeA day and a time togetherA launch event's start
Date rangeA start day and an end dayA retreat from 12 to 15 June

Each field can set limits: Minimum date and Maximum date (or a minimum and maximum time) restrict what the picker allows. A date outside the limits is saved with a warning.

Date range ​

A Date range stores both ends of a period in one field. The end can't come before the start. Conditional logic and dynamic tags can use the Start and End separately.

An empty range stays empty. It doesn't fill in today's date.

Formats and time zones ​

Values are stored in a fixed, sortable format, whatever the site's date settings: 2026-06-12 for dates, 22:30:00 for times, and 2026-06-12 19:00:00 for date and time. When you display them, format them for your visitors, for example with the date_format modifier in a dynamic tag.

The inputs in the editor follow the language in your WordPress profile. With English (UK) you type 12/06/2026 and get a 24-hour clock, with German 12.06.2026, and with English (United States) 06/12/2026. The stored value is the same either way.

These fields store no time zone. A time means the site's local time.

If a launch event needs its own time zone, use a Recurring Date field, which can store one per entry.

Something that repeats ​

For "every Saturday" or "the first Monday of each month", don't add a stack of Date fields. Use Recurring Date.

Technical details for LLMs
  • Type keys and settings: date (default_value, min_date, max_date: YYYY-MM-DD); time (default_value, min_time, max_time: HH:MM:SS); datetime (default_value, min_datetime, max_datetime: YYYY-MM-DD HH:MM:SS); date_range (default_value: { start, end }, min_date, max_date).
  • Stored: strings in exactly those formats; date_range as JSON { start, end }. A time that doesn't match HH:MM:SS is a warning (Invalid date/time value.), not a rejection. end < start on a range is a warning (date_range_order).
  • Abilities: time reads back as HH:MM but must be written as HH:MM:SS. date and datetime round-trip unchanged. date_range reads and writes { start, end }.
  • Condition profile date (before, after, on, between); date_range exposes start / end sub-sources.
  • All four are compact for form columns.

Documentation for the VX Framework.