Trabajar con fechas y horas en VisualMaker¶
VisualMaker ofrece herramientas poderosas para manejar fechas y horas. Estas capacidades te permiten formatear fechas, realizar cálculos temporales, y personalizar el comportamiento de tus bots con base en el tiempo.
Formato de fechas y horas¶
En VisualMaker, las fechas y horas se representan en el formato:
DD-MM-YYYY HH:MM:SS
- DD: Día del mes (01-31).
- MM: Mes del año (01-12).
- YYYY: Año (4 dígitos).
- HH: Hora en formato de 24 horas (00-23).
- MM: Minutos (00-59).
- SS: Segundos (00-59).
Por ejemplo:
19-01-2025 12:01:55
Variables de fechas¶
Las variables de tipo fecha
pueden almacenar fechas para ser reutilizadas en tu bot.
Crear una variable de fecha¶
-
Primeramente necesitas crear la variable, para ello, en tu bot ve a:
🔑 Gestionar
→🗃 Variables
→💠 Crear variable 💠
-
En
➡️ Tipo de datos:
seleccionafecha 📅
. - Escribe el nombre de la variable.
Uso de las variables de fechas¶
Las variables de fechas te permiten almacenar fechas para realizar validaciones, por ejemplo, si deseas que un botón sea pulsado solo una vez cada 15 minutos, una variable de fecha te permitirá hacerlo posible. Veremos ejemplos de esto más adelante.
Representar una variable de fecha¶
Una vez creada la variable y guardada una fecha en su interior (veremos cómo más adelante), puedes representar su contenido en mensajes y en acciones de la siguiente forma:
{mi_variable}
Asumiendo que creaste la variable llamada mi_variable
, esto mostrará algo como:
19-01-2025 14:05:30
¿Qué son las variables?
Para más información acerca de las variables mira aquí.
Fechas en UTC¶
Se recomienda trabajar con fechas y horas en UTC (Tiempo Universal Coordinado), puedes usar la función date_now()
para obtener la fecha y hora actual sin ajustes locales. Esta es la función que más usarás al trabajar con fechas en VisualMaker.
Mostrar fechas y horas en mensajes¶
Puedes insertar fechas y horas en mensajes utilizando funciones dentro de expresiones:
Ejemplo básico:
La fecha y hora actual es: {date_now()}
Esto mostrará algo como:
La fecha y hora actual es: 20-01-2025 15:45:12
Expresiones
Las funciones se representan usando expresiones, por tanto deben ir entre llaves { }
.
Funciones para trabajar con fechas y horas¶
1. date_now()¶
Devuelve la fecha y hora actual en UTC.
{date_now()}
➔"20-01-2025 15:48:00"
2. date_now_tz()¶
Devuelve la fecha y hora actual según la zona horaria configurada.
{date_now_tz()}
➔"20-01-2025 13:48:00"
3. apply_tz()¶
Aplica la zona horaria del bot a una fecha y hora.
{apply_tz("01-03-2024 00:07:48")}
➔"01-03-2024 02:07:48"
4. date_format()¶
Formatea una fecha y hora a un formato específico.
{date_format("20-01-2025 15:30:00", "%d/%m/%Y")}
➔"20/01/2025"
5. time_passed()¶
Calcula el tiempo transcurrido desde una fecha hasta ahora.
{time_passed("19-01-2025 15:30:00", "hours")}
➔"24"
6. time_left()¶
Calcula el tiempo restante hasta una fecha.
{time_left("21-01-2025 15:30:00", "days")}
➔"1"
7. time_add()¶
Agrega una cantidad de tiempo a una fecha.
{time_add("20-01-2025 15:30:00", 2, "days")}
➔"22-01-2025 15:30:00"
8. time_diff()¶
Calcula la diferencia entre dos fechas.
{time_diff("20-01-2025", "22-01-2025", "days")}
➔"2"
Comparando fechas y horas¶
VisualMaker permite comparar fechas y horas para verificar condiciones específicas y ver si un evento ha ocurrido o si falta tiempo para que suceda.
Puedes comparar usando:
- Fechas textuales, ejemplo:
01-03-2024 02:07:48
- Funciones, ejemplo:
{date_now()}
- Variables, ejemplo:
{mi_variable}
Puedes comparar usado también operadores de comparación
==
Igual que!=
Diferente que>
Mayor que<
Menor que>=
Mayor o igual que<=
Menor o igual que
Esto es sumamente útil para realizar comparaciones en acciones como la de Condición.
Ejemplo 1: Comparando dos fechas textuales¶
{"02-01-2024 01:02:03" > "01-01-2024 01:02:03"}
Eso compara si la primera fecha es mayor que la segunda. Será True
(verdadero), ya que 02-01-2024 01:02:03
es una fecha mayor que 01-01-2024 01:02:03
.
Ejemplo 2: Comparando usando variable¶
{"02-01-2024 01:02:03" < mi_variable}
Compara si la primera fecha es menor que la fecha almacenada en la variable. Devolverá True
(verdadero) o False
(falso), según la fecha almacenada en la variable.
Ejemplo 3: Comparando usando función¶
{time_passed("15-01-2025 01:01:01", "hours") > 3}
- Primeramente la función
time_passed()
con el parámetro"hours"
es usada para ver cuántas horas han pasado desde la fecha15-01-2025 01:01:01
, eso devolverá un número indicando las horas que han pasado. - Luego, se compara si ese número es mayor a 3. Si es mayor a 3, significa que han pasado más de 3 horas y devolverá
True
(verdadero), en caso contrario (si es menor a 3) devolveráFalse
(falso).
Ejemplo 4: Comparando usando función y variable¶
{time_left(variable_fecha, "days") == 0}
- Primeramente la función
time_left()
con el parámetro"days"
es usada para ver cuántos días faltan hasta llegar a la fecha almacenada en la variablevariable_fecha
, devolverá un número indicando los días que faltan. - Luego, se compara si ese número es igual a 0. Si es igual a 0, significa que ya la fecha ha llegado y devolverá
True
(verdadero), en caso contrario (es mayor a 0) devolveráFalse
(falso).
Nota
Al usar time_left()
, una vez la fecha haya llegado o pasado, siempre devolverá 0, NUNCA devolverá números negativos.
Zona horaria del bot¶
-
Configura la zona horaria de tu bot en:
🔑 Gestionar
→⚙️ Ajustes
→🕒 Zona horaria
-
Las funciones
date_now_tz()
yapply_tz()
, respetarán esta configuración.
Ejemplo práctico: Botón de reclamar con condición de tiempo¶
En este ejemplo crearemos un botón llamado Reclamar
que:
- Le incremente el balance al usuario en 1, al ser pulsado cada 15 minutos.
- Guarda la fecha del reclamo.
- Si se pulsa el botón sin haber pasado 15 minutos desde el último reclamo, saltará un error.
Requisitos previos¶
- Suscripción premium: Estas configuraciones requieren el uso de acciones, y variables, funcionalidades exclusivas de la suscripción premium en VisualMaker.
- Acciones necesarias:
- Condición: Para evaluar si ya pasaron o no 15 minutos.
- Cambiar variable: Permite guardar y modificar datos en variables.
- Enviar mensaje: Para enviar mensajes al usuario.
Pasos para configurarlo:¶
1. Crear la variable de fecha¶
- Ve a
🔑 Gestionar
→🗃 Variables
→💠 Crear variable 💠
- En
➡️ Tipo de datos:
seleccionafecha 📅
. - Escribe el nombre de la variable, por ejemplo:
ultimo_reclamo
. - Sal del menú de gestionar pulsando en
↙️ Regresar ↘️
, y luego en⬅️ Salir
.
2. Crear el botón Reclamar
¶
- Entra al editor del bot pulsando
🛠 Editar
. - Crea un nuevo botón pulsando en
✳️ Nuevo botón | comando
y nómbraloReclamar
. - Pulsa en
Acciones 🌟
para configurar las acciones del botón.
3. Configurar las acciones¶
a) Acción 1: Condición¶
- Pulsa en
🎯 Nueva acción
→🧭 Condición
. - Por ahora no hacemos nada aquí (la configuraremos más adelante).
b) Acción 2: Cambiar variable (balance
)¶
- Pulsa en
🎯 Nueva acción
→🗃 Cambiar variable
. -
Pulsa en
Configurar 🛠
y configura lo siguiente:-
Seleccionar variable: Escribe el nombre de la variable que deseas modificar:
balance
-
Tipo de modificación:
🔺 Incrementar 🔺
-
Valor a guardar: Especifica el valor a incrementar:
1
-
-
Regresa al menú de acciones y activa la acción pulsando en
✅ Activar
.
c) Acción 3: Cambiar variable (ultimo_reclamo
)¶
- Pulsa en
🎯 Nueva acción
→🗃 Cambiar variable
. -
Pulsa en
Configurar 🛠
y configura lo siguiente:-
Seleccionar variable: Escribe el nombre de la variable que deseas modificar:
ultimo_reclamo
-
Tipo de modificación:
💢 Establecer 💢
-
Valor a guardar: Especifica la fecha 15 minutos en el futuro:
{time_add(date_now(), 15, "minutes")}
-
-
Regresa al menú de acciones y activa la acción pulsando en
✅ Activar
.
d) Acción 4: Enviar mensaje¶
- Pulsa en
🎯 Nueva acción
→Enviar mensaje
. -
Pulsa en
Configurar 🛠
→💬 Establecer mensaje 💬
e ingresa:✅ Has reclamado 1 moneda, ahora tienes {balance} monedas. 🕒 Regresa en 15 minutos.
-
Regresa al menú de acciones y activa esta acción pulsando en
✅ Activar
.
e) Agregar un Separador¶
Pulsa en Nuevo separador 📍
para agregar un separador al final y crear un nuevo bloque de acciones. Mira qué son los separadores.
f) Acción 5: Enviar mensaje¶
- Pulsa en
🎯 Nueva acción
→Enviar mensaje
. -
Pulsa en
Configurar 🛠
→💬 Establecer mensaje 💬
e ingresa:❌ Aún no es hora, regresa en {floor(time_left(ultimo_reclamo, "minutes"))} minutos y {ceil(time_left(ultimo_reclamo, "seconds") % 60)} segundos.
Hemos usado las funciones floor() y ceil() para redondear el número hacia abajo y hacia arriba respectivamente, y time_left() para determinar el tiempo restante en minutos. Puedes ver todas las funciones aquí.
-
Regresa al menú de acciones y activa esta acción pulsando en
✅ Activar
. - Copia el ID de esta acción, lo necesitarás en un momento.
g) Configurar acción de Condición
¶
-
Regresa a la acción de
Condición
(acción 1), y pulsa enConfigurar 🛠
.-
Nueva condición:
{date_now() > ultimo_reclamo}
-
Si es verdadero: Selecciona
continuar
. - Si es falso:
- Pulsa en
🆔 Ejecutar acción por ID 🆔
. - En
➡️ Después:
asegúrate de que esté seleccionadodetener
. - Envía el ID de la acción de
Enviar mensaje
que acabas de copiar.
- Pulsa en
-
-
Regresa al menú de acciones y activa esta acción pulsando en
✅ Activar
.
Resultado final¶
- El usuario pulsa el botón
Reclamar
. -
El bot evalúa si ya pasaron 15 minutos desde el ultimo reclamo:
-
Si ya pasaron:
- Le incrementa el
balance
al usuario en 1. - Establece una fecha en la variable
ultimo_reclamo
15 minutos en el futuro. - Le muestra al usuario un mensaje como el siguiente:
✅ Has reclamado 1 moneda, ahora tienes 3 monedas. 🕒 Regresa en 15 minutos.
- Le incrementa el
-
Si no han pasado, le muestra al usuario un mensaje como el siguiente:
❌ Aún no es hora, regresa en 9 minutos y 32 segundos.
-
Así quedaron las acciones¶
Con estas herramientas, puedes gestionar fechas y horas de manera eficiente en VisualMaker, desde cálculos simples hasta configuraciones avanzadas en tus bots.