Ver índice de contenidos del libro

13.4. Validadores de fechas

13.4.1. sfValidatorDate

sfValidatorDate valida fechas y fechas + horas (para utilizar fechas + horas, se debe activar la opción with_time). Además de validar el formato de una fecha, puede forzar a que la fecha sea anterior o posterior a una fecha indicada.

Este validador acepta como valor original diferentes tipos de variables:

  • Array con las siguientes claves: year, month, day, hour, minute y second
  • Cadena de texto que cumpla opcionalmente con la expresión regular indicada en la opción date_format
  • Cadena de texto que se pueda procesar por la función strtotime() de PHP
  • Número entero que representa un timestamp

El valor original se convierte en una fecha aplicando el formato date_output o datetime_output

Opción Error Descripción
date_format bad_format Expresión regular que deben cumplir las fechas
with_time - true si el validador debe devolver también la hora, false en cualquier otro caso
date_output - El formato que se utiliza al devolver sólo una fecha (por defecto es Y-m-d)
datetime_output - El formato que se utiliza al devolver una fecha y una hora (por defecto es Y-m-d H:i:s)
date_format_error - The date format to use when displaying an error for a bad_format error (use date_format if not provided)
max max La fecha máxima permitida (se indica como timestamp)
min min La fecha mínima permitida (se indica como timestamp)
date_format_range_error - El formato de fecha que se utiliza al mostrar un error de tipo max o min (por defecto es d/m/Y H:i:s)

Nota Las opciones date_output y datetime_output pueden emplear cualquier formato que entienda la función date() de PHP.

Error Variables Valor por defecto (se muestra en inglés)
bad_format date_format "%value%" does not match the date format (%date_format%).
min min The date must be after %min%.
max max The date must be before %max%.

13.4.2. sfValidatorTime

sfValidatorTime valida que el valor original sea una hora.

Este validador acepta como valor original diferentes tipos de variables:

  • Array con las siguientes claves: hour, minute y second
  • Cadena de texto que cumpla opcionalmente con la expresión regular indicada en la opción time_format
  • Cadena de texto que se pueda procesar por la función strtotime() de PHP
  • Número entero que representa un timestamp

El valor original se convierte en una hora aplicando el formato date_output o datetime_output

Opción Error Descripción
time_format bad_format Expresión regular que deben cumplir las horas
time_output - El formato que se utiliza al devolver una fecha con la hora (por defecto es H:i:s)
time_format_error - El formato de fecha que se utiliza al mostrar un error de tipo bad_format. Si no se indica, se utiliza el formato date_format

Nota La opción time_output puede emplear cualquier formato que entienda la función date() de PHP.

Error Variables Valor por defecto (se muestra en inglés)
bad_format date_format "%value%" does not match the time format (%time_format%).

13.4.3. sfValidatorDateTime

sfValidatorDateTime valida las fechas que incluyen la hora. En realidad, este validador es un atajo del siguiente código:

$v = new sfValidatorDate(array('with_time' => true));

13.4.4. sfValidatorDateRange

sfValidatorDateTime valida un rango de fechas.

Opción Error Descripción
from_date invalid El validador de la fecha inicial (obligatorio)
to_date invalid El validador de la fecha final (obligatorio)

Los validadores de from_date y to_date deben ser instancias de la clase sfValidatorDate.

El mensaje por defecto del error de tipo invalid es "%value%" does not match the time format (%time_format%).