Ir al contenido

Selector de rango de fechas

ui.DateRangePicker guarda una fecha de inicio y una de fin. Su ventana muestra dos meses: el primer clic elige el inicio, el puntero previsualiza el rango y el segundo clic elige el fin (en cualquier orden). La columna de la izquierda tiene rangos rápidos (hoy, últimos 7 días, esta semana, este mes, el mes pasado…). on_change recibe (inicio, fin) como dos datetime.date.

ui.DateRangePicker · Categoría: Fechas y horas · Referencia completa →

Selector de rango de fechasSelector de rango de fechas
  • Para informes, filtros, estancias y todo lo que dura varios días.
  • months=1 muestra un solo mes y presets=False oculta los rangos rápidos.
  • El campo también se puede escribir: dos fechas en format con cualquier separador.
import pyzed as pz
from pyzed import ui
class Report(pz.App):
def __init__(self):
self.period = (None, None)
def view(self):
start, end = self.period
days = (end - start).days + 1 if start and end else 0
return pz.column([
ui.DateRangePicker(value=self.period, format="MMM D, YYYY",
on_change=lambda e: setattr(self, "period", e.value)),
ui.label(f"{days} days selected", color="text_muted"),
], spacing=8, width=300)
Selector de rango de fechas: months=2Selector de rango de fechas: months=2
months=2
Código
ui.DateRangePicker(value=("2026-10-05", "2026-10-14"), on_change=on_change)
Selector de rango de fechas: months=1, presets=FalseSelector de rango de fechas: months=1, presets=False
months=1, presets=False
Código
ui.DateRangePicker(months=1, presets=False, on_change=on_change)

Selector de rango de fechas tiene 3 eventos propios, en la tabla de abajo. Como todo widget, también tiene los 18 eventos comunes (click, double_click, right_click, mouse_enter, drag, key_down, resize…), que se conectan con .on(...): mira Eventos y Eventos de cada componente.

Es un pz.Component, así que también lanza on_mount y on_unmount, y sus handlers reciben un pz.Event cuyo value trae el dato.

Evento El handler recibe Cuándo
on_change (event) Recibe event.value: (inicio, fin).
on_open (event) Se abrió el calendario.
on_close (event) Se cerró el calendario.

El handler recibe es lo que Pyzed le pasa a tu función: () es nada. Cualquier handler también puede ser un mensaje (un valor que no se puede llamar), que va a update().

Los mismos eventos escritos de tres formas. Imperativa: métodos de la app que cambian self. Declarativa: los handlers producen mensajes y un único update() decide. Funcional: una función pura dibuja un estado inmutable y pide cambios con set_state(...). Mira Imperativo, declarativo y funcional.

class Report(pz.App):
def __init__(self):
self.period = ("2026-10-05", "2026-10-14")
def changed(self, event): # on_change: event.value is (start, end)
self.period = event.value
def view(self):
start, end = self.period
return pz.column([
ui.DateRangePicker(value=self.period, on_change=self.changed),
ui.label(f"From {ui.format_date(start, 'D MMM')} to {ui.format_date(end, 'D MMM')}"),
], spacing=8, width=280)
class DateRangePicker

Un componente: un campo para una fecha de inicio y otra de fin, con dos meses y rangos rápidos (Hoy, Últimos 7 días, Este mes…) en su ventana emergente. El texto escrito son dos fechas separadas por separator. Ver la página Selector de rango de fechas.

Propiedad Por defecto Descripción
value None (inicio, fin): fechas, texto ISO o None.
format "YYYY-MM-DD" Cómo se escribe cada fecha.
separator " – " Texto entre las dos fechas.
placeholder "" Pista mientras está vacío.
min None La primera fecha.
max None La última fecha.
disabled_dates () Días que no se pueden elegir.
first_weekday "monday" "monday", "sunday" o "saturday".
months 2 Meses que se ven uno al lado del otro.
presets True Muestra los rangos rápidos.
clearable True Muestra una x que lo vacía.
disabled False Lo atenúa.
invalid False Pinta el borde con el color de error.

Eventos: on_change, on_open, on_close (eventos).

Referencia completa →