Skip to main content

Working with Time Specifications

Learn how to specify time ranges flexibly using absolute and relative times.

Absolute Times

Use ISO 8601 format for specific dates and times:

msg.startTime = "2024-11-20T08:00:00Z";
msg.endTime = "2024-11-20T17:00:00Z";

With timezone offset:

msg.startTime = "2024-11-20T08:00:00+01:00";

Relative Times

Current Time

msg.endTime = "now";

Time Ago

msg.startTime = "1 hour ago";
msg.startTime = "30 minutes ago";
msg.startTime = "2 days ago";
msg.startTime = "1 week ago";

Common Patterns

Last Hour

msg.startTime = "1 hour ago";
msg.endTime = "now";

Last 24 Hours

msg.startTime = "24 hours ago";
msg.endTime = "now";

Last Week

msg.startTime = "7 days ago";
msg.endTime = "now";

Yesterday (Full Day)

const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
yesterday.setHours(0, 0, 0, 0);

const endOfYesterday = new Date(yesterday);
endOfYesterday.setHours(23, 59, 59, 999);

msg.startTime = yesterday.toISOString();
msg.endTime = endOfYesterday.toISOString();

This Week (Monday to Now)

const now = new Date();
const monday = new Date(now);
monday.setDate(now.getDate() - now.getDay() + 1);
monday.setHours(0, 0, 0, 0);

msg.startTime = monday.toISOString();
msg.endTime = "now";

Business Hours Today

const today = new Date();
const start = new Date(today);
start.setHours(8, 0, 0, 0);

const end = new Date(today);
end.setHours(17, 0, 0, 0);

msg.startTime = start.toISOString();
msg.endTime = end.toISOString();

Dynamic Time Ranges

User-Selected Range

// msg.payload from UI contains days back
const daysBack = msg.payload || 7;
msg.startTime = `${daysBack} days ago`;
msg.endTime = "now";
return msg;

Rolling Window

// Keep last N hours
const hoursBack = 4;
msg.startTime = `${hoursBack} hours ago`;
msg.endTime = "now";
return msg;

Tips

  • Use relative times for dynamic, recurring queries
  • Use absolute times for reports on specific periods
  • Always specify both startTime and endTime
  • Be aware of timezone differences with absolute times
  • Use "now" for real-time ending points