Un campo que permite al usuario modificar información de fecha a través de una variedad de diferentes elementos HTML.
Los datos subyacentes utilizados para este tipo de campo pueden ser un objeto DateTime, una cadena, una marca de tiempo o un arreglo. Siempre y cuando la opción input se configure correctamente, el campo se hará cargo de todos los detalles.
El campo se puede reproducir como un cuadro de texto, tres cuadros de texto (mes, día y año) o tres cuadros de selección (ve la opción widget).
Underlying Data Type | can be DateTime, string, timestamp, or array (see the input option) |
Rendered as | single text box or three select fields |
Options | |
Inherited options | |
Parent type | field (if text), form otherwise |
Class | Symfony\Component\Form\Extension\Core\Type\DateType |
Este tipo de campo es altamente configurable, pero fácil de usar. Las opciones más importantes son input y widget.
Supongamos que tienes un campo publishedAt cuya fecha subyacente es un objeto DateTime. El siguiente código configura el tipo date para ese campo como tres campos de opciones diferentes:
$builder->add('publishedAt', 'date', array(
'input' => 'datetime',
'widget' => 'choice',
));
La opción input se debe cambiar para que coincida con el tipo de dato de la fecha subyacente. Por ejemplo, si los datos del campo publishedAt eran una marca de tiempo Unix, habría la necesidad de establecer input a timestamp:
$builder->add('publishedAt', 'date', array(
'input' => 'timestamp',
'widget' => 'choice',
));
El campo también es compatible con array y string como valores válidos de la opción input.
tipo: string predefinido: choice
La forma básica en que se debe reproducir este campo. Puede ser una de las siguientes:
Prudencia
If timestamp is used, DateType is limited to dates between Fri, 13 Dec 1901 20:45:54 GMT and Tue, 19 Jan 2038 03:14:07 GMT on 32bit systems. This is due to a limitation in PHP itself.
tipo: string predefinido: datetime
El formato del dato input —es decir, el formato de la fecha en que se almacena en el objeto subyacente. Los valores válidos son los siguientes:
El valor devuelto por el formulario también se normaliza de nuevo a este formato.
Prudencia
If timestamp is used, DateType is limited to dates between Fri, 13 Dec 1901 20:45:54 GMT and Tue, 19 Jan 2038 03:14:07 GMT on 32bit systems. This is due to a limitation in PHP itself.
tipo: string o array
Si la opción de elemento gráfico se ajusta a choice, entonces este campo se reproduce como una serie de cajas de selección. Puedes utilizar la opción empty_value para agregar una entrada «en blanco» en la parte superior de cada caja de selección:
$builder->add('dueDate', 'date', array(
'empty_value' => '',
));
Alternativamente, puedes especificar una cadena que se mostrará en lugar del valor «en blanco»:
$builder->add('dueDate', 'date', array(
'empty_value' => array('year' => 'Year', 'month' => 'Month', 'day' => 'Day')
));
tipo: array predeterminado: cinco años antes a cinco años después del año en curso
Lista de años disponibles para el tipo de campo year. Esta opción sólo es relevante cuando la opción widget está establecida en choice.
tipo: array predeterminado: 1 a 12
Lista de los meses disponibles para el tipo de campo month. Esta opción sólo es relevante cuando la opción widget está establecida en choice.
tipo: array predeterminado: 1 a 31
Lista de los días disponibles para el tipo de campo day. Esta opción sólo es relevante cuando la opción widget está establecida en choice:
'days' => range(1,31)
tipo: integer o string predefinido: IntlDateFormatter::MEDIUM
Opción pasada a la clase IntlDateFormatter, utilizada para transformar la entrada del usuario al formato adecuado. Esto es crítico cuando la opción widget se configura a single_text, y necesitas definir la forma en que el usuario debe introducir los datos. De manera predeterminada, el formato se determina basándose en la configuración regional del usuario actual; significa que el formato esperado será diferente para distintos usuarios. La puedes redefinir pasando el formato como una cadena.
Para más información sobre formatos válidos, consulta la Sintaxis de formatos Date/Time. For example, to render a single text box that expects the user to enter yyyy-MM-dd, use the following options:
$builder->add('date_created', 'date', array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
));
tipo: string predefinido: la zona horaria del sistema
La zona horaria en que se almacenan los datos entrantes. Esta debe ser una de las zonas horarias compatibles con PHP
tipo: string predefinido: la zona horaria del sistema
La zona horaria para mostrar los datos al usuario (y por lo tanto también los datos que el usuario envía). Esta debe ser una de las zonas horarias compatibles con PHP
Estas opciones las hereda del tipo field:
tipo: string predefinido: This value is not valid (Este valor no es válido)
Este es el mensaje para el error de validación utilizado cuando se determina que los datos ingresados en este campo no tienen sentido (es decir, falla la validación).
Esto puede ocurrir, por ejemplo, si el usuario introduce una cadena sin sentido en el campo time que no se puede convertir a una hora real o si el usuario introduce una cadena (por ejemplo, manzana) en un campo de número.
La validación (con la lógica del negocio) normal (por ejemplo, al establecer una longitud mínima en un campo) la debes establecer usando mensajes de validación con tus reglas de validación (referencia).
tipo: array predeterminado: array()
Al establecer la opción invalid_message, posiblemente sea necesario que incluyas algunas variables en la cadena. Esto se puede lograr agregando marcadores de posición y variables en esa opción:
$builder->add('some_field', 'some_type', array(
// ...
'invalid_message' => 'You entered an invalid value - it should include %num% letters',
'invalid_message_parameters' => array('%num%' => 6),
));
Nuevo en la versión 2.1: The read_only option was changed in 2.1 to render as a readonly HTML attribute. Previously, it rendered as a disabled attribute. Use the disabled option if you need the old behavior.
tipo: Boolean predeterminado: false
If this option is true, the field will be rendered with the readonly attribute so that the field is not editable.
Nuevo en la versión 2.1: The disabled option is new in version 2.1
type: boolean default: false
Si no deseas que un usuario pueda modificar el valor de un campo, puedes establecer la opción disabled en true. Cualquier valor recibido será omitido.
These options inherit from the date type:
tipo: boolean default: false
This option determines if the form will be mapped with data. This can be useful if you need a form to structure the view. See Cómo usar la opción virtual en los campos de formulario.