---
title: "Thông báo theo khung giờ với điều kiện UTC trong Echobell"
description: "Dùng các biến thời gian UTC dựng sẵn của Echobell để lọc thông báo theo giờ làm việc, cuối tuần hay khung bảo trì. Kèm những công thức điều kiện dùng được ngay."
date: 2025-11-06
author: Nooc
authorAvatarLink: /images/avatars/nooc.webp
authorLink: https://nooc.me
tags:
  - Echobell
  - điều kiện
  - UTC
  - cảnh báo theo khung giờ
  - lọc thông báo
---

# Thông báo theo khung giờ với điều kiện UTC trong Echobell

Các biến thời gian UTC dựng sẵn của Echobell cho phép bạn giới hạn thông báo vào những khung giờ cụ thể — giờ làm việc, ca trực on-call, khung bảo trì — ngay trong phần Điều kiện của kênh. Không cần thêm lớp lọc bên ngoài nào.

Kiến thức cần có: [Điều kiện](/vi/docs/conditions), [Mẫu](/vi/docs/template), [Webhook](/vi/docs/webhook), [Kích hoạt qua Email](/vi/docs/email-trigger).

## Các biến UTC có sẵn

Đây là những biến chỉ đọc, luôn có sẵn và được tính theo giờ UTC:

- `timezone` (luôn là "UTC"), `now`/`iso`, `epochMs`, `epochSeconds`
- `year`, `month` (1–12), `monthName`
- `dayOfMonth` (1–31)
- `dayOfWeek` (0–6, Chủ nhật = 0), `dayOfWeekName`
- `hour` (0–23), `minute` (0–59), `second` (0–59)
- `date` (YYYY-MM-DD), `time` (HH:mm:ss)

Hãy dùng chúng trực tiếp trong [Điều kiện](/vi/docs/conditions) (không có `{{ }}`). Dùng kèm `{{ }}` trong [Mẫu](/vi/docs/template).

## Các công thức điều kiện

### Ngày trong tuần, trong giờ làm việc

```
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
```

### Chỉ cuối tuần

```
dayOfWeek == 0 || dayOfWeek == 6
```

### Ngoài giờ (ban đêm và cuối tuần)

```
(hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6
```

### Khung bảo trì (thứ Bảy 01:00–03:00)

```
dayOfWeek == 6 && hour >= 1 && hour < 3
```

### Ngày đầu mỗi tháng, đúng đầu giờ

```
dayOfMonth == 1 && minute == 0
```

### Giờ làm việc cuối quý (tháng 3/6/9/12)

```
(month == 3 || month == 6 || month == 9 || month == 12) && hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
```

## Kết hợp thời gian với bộ lọc nội dung

Điều kiện thời gian ghép được với biến dữ liệu bằng các toán tử thông thường:

- Leo thang ngoài giờ, chỉ với mức nghiêm trọng cao:
  ```
  ((hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6) && (severity == "high" || severity == "critical")
  ```
- Môi trường production, chỉ ngày trong tuần:
  ```
  environment == "production" && dayOfWeek >= 1 && dayOfWeek <= 5
  ```

Điều kiện là biểu thức thuần — đừng bọc chúng trong `{{ }}`. Xem [Điều kiện → Các toán tử được hỗ trợ](/vi/docs/conditions#các-toán-tử-được-hỗ-trợ).

## Dùng biến thời gian trong mẫu

Cũng những biến đó dùng được trong mẫu với `{{ }}`, rất tiện cho bản ghi kiểm toán và những dòng xác nhận dễ đọc cho con người:

```
Sent at {{date}} {{time}} {{sys.timezone}}
Today is {{sys.dayOfWeekName}}, {{sys.monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{sys.epochSeconds}}
```

Trộn với dữ liệu từ [Webhook](/vi/docs/webhook) hoặc [Kích hoạt qua Email](/vi/docs/email-trigger):

```
{{service}} {{status}} at {{time}} ({{sys.timezone}})
```

## Ghi chú

- Mọi biến hệ thống đều theo UTC. Nếu nhóm bạn trải trên nhiều múi giờ, hãy tính đến độ lệch khi đặt khoảng giờ.
- Hãy bắt đầu với một khung giờ đơn giản, rồi mới chồng thêm bộ lọc nội dung khi nó đã chạy tốt.
- Hãy để lại một mô tả ngắn trên kênh giải thích logic của điều kiện (ví dụ "Ngày trong tuần 09–17 UTC; ngoài giờ chỉ với mức nghiêm trọng cao").

## Bước tiếp theo

- Thêm điều kiện khung giờ vào một kênh sẵn có: [Điều kiện](/vi/docs/conditions)
- Tùy chỉnh nội dung thông báo bằng biến: [Mẫu](/vi/docs/template)
- Tạo kênh riêng cho giờ làm việc và cho khung trực on-call
- Đặt kênh trực on-call ở kiểu thông báo Cuộc gọi để đủ khẩn ngoài giờ
