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
startTimeandendTime - Be aware of timezone differences with absolute times
- Use
"now"for real-time ending points