Giao diện
@digiforce-nc/plugin-workflow-date-calculation
Plugin đăng ký node tính toán ngày tháng trong workflow, mở rộng plugin-workflow. Hỗ trợ cộng/trừ thời gian, tính khoảng cách giữa hai ngày, và định dạng ngày tháng.
Plugin này làm gì?
Node Date Calculation thực hiện các phép tính trên dữ liệu ngày tháng: cộng/trừ khoảng thời gian, tính hiệu hai ngày, chuyển đổi định dạng. Kết quả được lưu vào biến workflow để sử dụng trong các node tiếp theo.
Hỗ trợ 3 chế độ chính:
- Add/Subtract: Cộng hoặc trừ một khoảng thời gian vào ngày gốc
- Diff: Tính khoảng cách giữa hai ngày (theo đơn vị mong muốn)
- Format: Chuyển đổi ngày sang chuỗi theo format tùy chỉnh
Cấu hình
| Tham số | Kiểu | Mô tả |
|---|---|---|
engine | string | Loại phép tính: add, subtract, diff, format |
sourceDate | string | Biến chứa ngày gốc (hoặc now cho thời điểm hiện tại) |
duration | number | Giá trị cộng/trừ |
unit | string | Đơn vị: years, months, weeks, days, hours, minutes, seconds |
targetDate | string | Biến chứa ngày đích (cho phép tính diff) |
format | string | Pattern định dạng kết quả (ví dụ: YYYY-MM-DD HH:mm) |
Input / Output
| Hướng | Dữ liệu | Mô tả |
|---|---|---|
| Input | sourceDate | Ngày gốc (Date, string ISO, hoặc timestamp) |
| Input | targetDate | Ngày đích (cho phép tính diff) |
| Input | duration | Giá trị thời gian cộng/trừ |
| Output | result | Kết quả: Date mới (add/subtract), number (diff), string (format) |
Tính năng chính
| # | Tính năng | Chi tiết |
|---|---|---|
| 1 | Cộng/trừ thời gian | Thêm hoặc bớt khoảng thời gian từ ngày gốc |
| 2 | Tính khoảng cách | Tính hiệu giữa hai ngày theo đơn vị mong muốn |
| 3 | Định dạng | Chuyển đổi ngày sang chuỗi theo format tùy chỉnh |
| 4 | Nhiều đơn vị | Hỗ trợ từ giây đến năm |
| 5 | Biến động | Sử dụng biến workflow làm input (không chỉ giá trị cố định) |
Trường hợp sử dụng
| # | Kịch bản | Mô tả |
|---|---|---|
| 1 | Hạn thanh toán | Tính ngày đáo hạn = ngày tạo đơn + 30 ngày |
| 2 | Nhắc nhở trước hạn | Tính ngày nhắc = deadline - 3 ngày, gửi notification |
| 3 | Tính tuổi | diff(ngày sinh, now) theo năm |
| 4 | SLA tracking | Tính thời gian xử lý = diff(created, resolved) theo giờ |
| 5 | Format hiển thị | Chuyển ISO date sang "dd/MM/yyyy" cho email tiếng Việt |
Lưu ý quan trọng
- Kết quả
diffluôn trả về giá trị dương (absolute difference) - Định dạng
nowsử dụng timezone của server, không phải client - Duration hỗ trợ số thập phân:
1.5 hours= 1 giờ 30 phút - Khi add/subtract tháng, ngày cuối tháng được xử lý thông minh (31/1 + 1 tháng = 28/2)
- Kết quả format trả về string, không thể dùng tiếp cho phép tính ngày khác
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/plugin-workflow | Workflow engine (peer) |
@digiforce-nc/server | Server framework (peer) |