Selector de fecha y hora

El widget de DateTimePicker permite a los usuarios ingresar una fecha, una hora o ambas.

Los usuarios pueden ingresar texto o usar el selector para seleccionar fechas y horas. Si los usuarios ingresan una fecha o una hora no válidas, el selector mostrará un error que les indicará que ingresen la información correctamente.

Para procesar los valores de fecha y hora que ingresan los usuarios, consulta Recibe datos del formulario.

Ejemplo

A continuación, se muestra una tarjeta que consta de tres tipos diferentes de widgets DateTimePicker:

Representación de JSON y campos

Representación JSON
{
  "name": string,
  "label": string,
  "type": enum (DateTimePickerType),
  "valueMsEpoch": string,
  "timezoneOffsetDate": integer,
  "onChangeAction": {
    object (Action)
  }
}
Campos
name

string

Es el nombre con el que se identifica el DateTimePicker en un evento de entrada de formulario.

Para obtener información detallada sobre cómo trabajar con entradas de formularios, consulta Recibe datos de formularios.

label

string

Es el texto que solicita a los usuarios que ingresen una fecha, una hora o una fecha y hora. Por ejemplo, si los usuarios programan una cita, usa una etiqueta como Appointment date o Appointment date and time.

type

enum (DateTimePickerType)

Indica si el widget admite ingresar una fecha, una hora o la fecha y hora.

valueMsEpoch

string (int64 format)

Es el valor predeterminado que se muestra en el widget, expresado en milisegundos desde el ciclo de la época Unix.

Especifica el valor según el tipo de selector (DateTimePickerType):

  • DATE_AND_TIME: Es una fecha y hora del calendario en UTC. Por ejemplo, para representar el 1 de enero de 2023 a las 12:00 p.m. UTC, usa 1672574400000.
  • DATE_ONLY: Una fecha del calendario a las 00:00:00 UTC. Por ejemplo, para representar el 1 de enero de 2023, usa 1672531200000.
  • TIME_ONLY: Es una hora en UTC. Por ejemplo, para representar las 12:00 p.m., usa 43200000 (o 12 * 60 * 60 * 1000).
timezoneOffsetDate

integer

El número que representa el desplazamiento de zona horaria desde UTC, en minutos. Si se configura, valueMsEpoch se muestra en la zona horaria especificada. Si no la estableces, el valor se establecerá de forma predeterminada en la configuración de zona horaria del usuario.

onChangeAction

object (Action)

Se activa cuando el usuario hace clic en Guardar o Borrar en la interfaz DateTimePicker.

DateTimePickerType

Enumeradores
DATE_AND_TIME Los usuarios ingresan una fecha y hora.
DATE_ONLY Los usuarios ingresan una fecha.
TIME_ONLY Los usuarios ingresan una hora.

Acción

Una acción que describe el comportamiento cuando se envía el formulario. Por ejemplo, puedes invocar una secuencia de comandos de Apps Script para controlar el formulario. Si se activa la acción, los valores del formulario se envían al servidor.

Representación JSON
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction)
}
Campos
function

string

Es una función personalizada que se invoca cuando se hace clic en el elemento contenedor o se activa de otro modo.

Para ver ejemplos de uso, consulta Cómo crear tarjetas interactivas.

parameters[]

object (ActionParameter)

Lista de parámetros de acción.

loadIndicator

enum (LoadIndicator)

Especifica el indicador de carga que muestra la acción mientras se realiza la llamada a la acción.

persistValues

boolean

Indica si los valores del formulario persisten después de la acción. El valor predeterminado es false.

Si es true, los valores del formulario permanecen después de que se activa la acción. Para permitir que el usuario realice cambios mientras se procesa la acción, configura LoadIndicator como NONE. Para los mensajes de tarjetas en las apps de Chat, también debes configurar el ResponseType de la acción en UPDATE_MESSAGE y usar el mismo cardId de la tarjeta que contenía la acción.

Si es false, los valores del formulario se borran cuando se activa la acción. Para evitar que el usuario haga cambios mientras se procesa la acción, establece LoadIndicator en SPINNER.

interaction

enum (Interaction)

Opcional. Es obligatorio al abrir un diálogo.

Qué hacer en respuesta a una interacción con un usuario, como cuando un usuario hace clic en un botón en un mensaje de tarjeta.

Si no se especifica, la app responde con la ejecución normal de un elemento action, como abrir un vínculo o ejecutar una función.

Cuando se especifica un interaction, la app puede responder de maneras interactivas especiales. Por ejemplo, si estableces interaction en OPEN_DIALOG, la app podrá abrir un diálogo. Cuando se especifica, no se muestra un indicador de carga.

Son compatibles con las apps de Chat, pero no los complementos de Google Workspace. Si se especifica para un complemento, se quitará toda la tarjeta y no se mostrará nada en el cliente.

ActionParameter

Lista de parámetros de cadena que se deben proporcionar cuando se invoca el método de acción. Por ejemplo, considera tres botones para posponer: Posponer ahora, Posponer un día o Posponer la próxima semana. Puedes usar action method = snooze() y pasar el tipo y el tiempo de posposición en la lista de parámetros de cadena.

Para obtener más información, consulta CommonEventObject.

Representación JSON
{
  "key": string,
  "value": string
}
Campos
key

string

El nombre del parámetro de la secuencia de comandos de acción.

value

string

El valor del parámetro.

LoadIndicator

Especifica el indicador de carga que muestra la acción mientras se realiza la llamada a la acción.

Enumeradores
SPINNER Muestra un ícono giratorio para indicar que se está cargando el contenido.
NONE No se muestra nada.

Interacción

Opcional. Es obligatorio al abrir un diálogo.

Qué hacer en respuesta a una interacción con un usuario, como cuando un usuario hace clic en un botón en un mensaje de tarjeta.

Si no se especifica, la app responde con la ejecución normal de un elemento action, como abrir un vínculo o ejecutar una función.

Cuando se especifica un interaction, la app puede responder de maneras interactivas especiales. Por ejemplo, si estableces interaction en OPEN_DIALOG, la app podrá abrir un diálogo.

Cuando se especifica, no se muestra un indicador de carga.

Son compatibles con las apps de Chat, pero no los complementos de Google Workspace. Si se especifica para un complemento, se quitará toda la tarjeta y no se mostrará nada en el cliente.

Enumeradores
INTERACTION_UNSPECIFIED Valor predeterminado action se ejecuta con normalidad.
OPEN_DIALOG

Abre un diálogo, una interfaz con ventanas y basadas en tarjetas que usan las apps de Chat para interactuar con los usuarios.

Solo es compatible con apps de Chat en respuesta a clics en botones en mensajes de tarjetas.

No es compatible con los complementos de Google Workspace. Si se especifica para un complemento, se quitará toda la tarjeta y no se mostrará nada en el cliente.

Solución de problemas

Cuando una app o tarjeta de Google Chat devuelve un error, la interfaz de Chat muestra un mensaje que dice “Se produjo un error” o “No se pudo procesar tu solicitud”. A veces, la IU de Chat no muestra ningún mensaje de error, pero la app o la tarjeta de Chat producen un resultado inesperado; por ejemplo, es posible que no aparezca un mensaje de tarjeta.

Aunque es posible que no se muestre un mensaje de error en la IU de Chat, hay mensajes de error descriptivos y datos de registro disponibles para ayudarte a corregir errores cuando se activa el registro de errores de las apps de chat. Si necesitas ayuda para ver, depurar y corregir errores, consulta Cómo solucionar y corregir errores de Google Chat.