# Manejando Fechas

En Hablla, la **manipulación de fechas** es esencial para configurar automatizaciones, definir plazos y crear reglas inteligentes dentro del flujo. Puedes definir fechas automáticamente usando expresiones dentro de los campos, sin necesidad de programar.

### 🌍 Ajustando la Zona Horaria

Los horarios utilizados en automatizaciones siguen el **estándar UTC (Tiempo Universal Coordinado)**. Sin embargo, dependiendo del lugar donde te encuentres, puede ser necesario ajustar ese horario.

✅ **Ejemplo para Brasil:**\
La **zona horaria de Brasilia** es UTC **-3**. Para ajustar cualquier fecha a la hora correcta, basta con restar **3 horas** de la fecha generada.

***

### 🔹 ¿Cómo Definir Fechas Dinámicamente?

En Hablla, usamos **expresiones de fecha** dentro de **{{ }}** para calcular y definir valores automáticamente.

#### ✅ **Definir Fecha Actual** (con ajuste de zona horaria)

Si quieres definir un campo con la **fecha y hora del momento de la automatización**, ajustando a Brasilia (UTC -3), usa:

```
{{new Date(Date.now() - 3 * 60 * 60 * 1000)}}  
```

📌 **Ejemplo:** Si la ejecución ocurre el **4 de marzo de 2025, a las 14:00 UTC**, el ajuste mostrará **"Tue Mar 04 2025 11:00:00 GMT-3"**.

***

#### ⏳ **Agregando Tiempo a la Fecha Actual**

Si necesitas agregar minutos, horas o días a la fecha actual, basta sumar el valor correspondiente a `Date.now()` y restar las 3 horas de la zona horaria.

**➕ Agregar Minutos**

Cada minuto equivale a **60.000 milisegundos**. Para agregar 20 minutos y ajustar a UTC -3, usamos:

```
{{new Date(Date.now() + 20 * 60 * 1000 - 3 * 60 * 60 * 1000)}}  
```

📌 **Ejemplo de Uso:** Definir la **Fecha de Inicio** de una tarea para 20 minutos en el futuro.

***

**⏳ Agregar Horas**

Cada hora equivale a **3.600.000 milisegundos**. Para agregar **3 horas**, ya considerando la zona horaria, usamos:

```
{{new Date(Date.now() + 3 * 60 * 60 * 1000 - 3 * 60 * 60 * 1000)}}  
```

📌 **Ejemplo de Uso:** Definir la **Fecha de Finalización** para 3 horas después del inicio de la tarea.

***

**📅 Agregar Días**

Cada día tiene **86.400.000 milisegundos**. Para agregar **2 días** y mantener el ajuste de la zona horaria, usamos:

```
{{new Date(Date.now() + 2 * 24 * 60 * 60 * 1000 - 3 * 60 * 60 * 1000)}}  
```

📌 **Ejemplo de Uso:** Configurar un plazo de vencimiento para 2 días después de la creación de la tarea.

***

#### ⏰ **Definir un Intervalo entre Fechas**

<figure><img src="https://4006966930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrmxWrIrMauHcIrsuqfGq%2Fuploads%2FXbqwLzEZD3iAp4KsuWDl%2Fimage.png?alt=media&#x26;token=0f4edae3-ef0c-446c-a2a3-e77f1ab3f002" alt=""><figcaption><p>Configuración de un componente Hablla para Crear Tarea</p></figcaption></figure>

Si necesitas configurar **Fecha de Inicio y Fecha de Finalización**, puedes usar expresiones diferentes para cada campo.

🔹 **Fecha de Inicio:** 20 minutos a partir del momento actual (UTC -3):

```
{{new Date(Date.now() + 20 * 60 * 1000 - 3 * 60 * 60 * 1000)}}  
```

🔹 **Fecha de Finalización:** 40 minutos después de la creación de la tarea (UTC -3):

```
{{new Date(Date.now() + 40 * 60 * 1000 - 3 * 60 * 60 * 1000)}}  
```

📌 **Ejemplo de Uso:** Crear una tarea que inicie en 20 minutos y termine en 40 minutos.

***

#### 🕑 **Restar Tiempo de la Fecha Actual**

Si necesitas configurar un horario **antes del momento actual**, basta con **restar** valores.

🔹 **Ejemplo: Definir una hora 1 hora atrás (UTC -3):**

```
{{new Date(Date.now() - 1 * 60 * 60 * 1000 - 3 * 60 * 60 * 1000)}}  
```

📌 **Uso:** Crear un evento con fecha retroactiva.

***

### 🎯 **Consejos Finales**

✅ **Siempre ajusta la zona horaria** de acuerdo con tu ubicación. Brasil usa UTC **-3**, pero si es otro lugar, ajusta según sea necesario.\
✅ **Multiplica correctamente los valores** para minutos, horas y días.\
✅ **Las fechas generadas siguen el formato UTC**, pero pueden convertirse en el sistema automáticamente.\
✅ **Probar antes de aplicar** ayuda a evitar errores de configuración.

🚀 **Con estas técnicas, puedes automatizar tareas y plazos correctamente, siempre respetando la hora local!**
