Datetime

An ISO-8601 formatted string containing date and time stored in UTC. E.g.  2017-02-12T09:15:00Z.

Properties

  • REQUIREDtypestring

    Value must be set to datetime.

  • titlestring

    Human readable label for the field.

  • REQUIREDnamestring

    Required. The field name. This will be the key in the data record.

  • hiddenboolean

    If set to true, this field will be hidden in the studio.

  • readOnlyboolean

    If set to true, this field will not be editable in the content studio.

  • descriptionstring

    Short description to editors how the field is to be used.

  • initialValueDateTimeStringOrResolverFunction

    The initial value used when creating new values from this type. Can be either a literal datetime string or a resolver function that returns either a literal datetime string value or a promise resolving to a datetime string value.

Options

  • dateFormatstring

    Controls how the date input field formats the displayed date. Use any valid Moment format option. Default is YYYY-MM-DD.

  • timeFormatstring

    Controls how the time input field formats the displayed date. Use any valid Moment format option. Default is HH:mm.

  • timeStepnumber

    Number of minutes between each entry in the time input. Default is 15 which lets the user choose between 09:00, 09:15, 09:30 and so on.

Validation

Learn more about validation
  • required()function

    Ensures that this field exists.

  • min(minDate)function

    Minimum date (inclusive). minDate should be in ISO 8601 format.

  • max(maxDate)function

    Maximum date (inclusive). maxDate should be in ISO 8601 format.

  • custom(fn)function

    Creates a custom validation rule.

The date+time is represented as a string in a simplified extended ISO format (ISO 8601). This is the same format as date.toISOString() and date.toJSON() returns.

Protip

If you need to store information about the timezone of the user that edited a certain datetime field, you may want to take a look at the @sanity/rich-date-input which provides a richDate type that stores a richer set of data.

Input

{
  title: 'Launch Scheduled At',
  name: 'launchAt',
  type: 'datetime'
}

Output

{
  "launchAt": "2017-02-12T09:15:00Z"
}

Example: All options set

{
  title: 'Launch Scheduled At',
  name: 'launchAt',
  type: 'datetime',
  options: {
    dateFormat: 'YYYY-MM-DD',
    timeFormat: 'HH:mm',
    timeStep: 15,
    calendarTodayLabel: 'Today'
  }
}

Was this article helpful?