dayjs-time-window
v1.0.3
Published
Utility for managing time windows and calculating remaining time using dayjs.
Downloads
364
Readme
🕒 dayjs-time-window
A lightweight Dayjs-based utility for handling daily time windows.
You can easily:
- Parse time strings (HH:mm:ss → Dayjs on current date)
- Build a same-day start–end window
- Check if a current time is within that window
📦 Installation
This package requires dayjs as a peer dependency.
npm install dayjs-time-window dayjs
# or
yarn add dayjs-time-window dayjs🚀 Usage
1. Parsing a Time into Today (parseToday)
Converts "HH:mm:ss" to a Dayjs object on today's date, zeroing milliseconds.
import dayjs from "dayjs";
import { parseToday } from "dayjs-time-window";
const now = dayjs(); // current timestamp
const t = parseToday(now, "14:30:00");
console.log(t?.format("YYYY-MM-DD HH:mm:ss"));
// → 2025-11-24 14:30:00 (example)2. Building a Time Window (buildWindow)
Creates start/end time points for today.
import { buildWindow } from "dayjs-time-window";
const { start, end } = buildWindow("09:00:00", "17:00:00");
console.log(start?.format(), end?.format());
// → start and end boundaries as Dayjs instances3. Validating Whether Time Is Inside the Window (inWindow)
Checks whether a given time is between start <= now <= end.
import dayjs from "dayjs";
import { inWindow, buildWindow } from "dayjs-time-window";
const current = dayjs();
const { start, end } = buildWindow("10:00:00", "18:00:00");
if (inWindow(current, start, end)) {
console.log("🟢 Open");
} else {
console.log("🔴 Closed");
}📚 API Reference
parseToday(now, hhmmss?)
Parses "HH:mm:ss" into Dayjs of today.
| Param | Type | Description |
| -------- | ------ | ------------------------------------ |
| now | Dayjs | Reference date (calendar day source) |
| hhmmss | string | Time string (seconds optional) |
Returns: Dayjs | null
buildWindow(start?, end?)
Creates a start–end daily boundary using the current date from dayjs().
| Param | Type | Description |
| ------- | ------ | ------------ |
| start | string | "HH:mm:ss" |
| end | string | "HH:mm:ss" |
Returns:
{
start: Dayjs | null;
end: Dayjs | null;
}inWindow(now, start, end)
Checks if now falls between start and end inclusively.
| Param | Type | Description |
| ------- | ------------- | ----------------------- |
| now | Dayjs | Target time to validate |
| start | Dayjs | null | Window start |
| end | Dayjs | null | Window end |
Returns: boolean
🔧 Internal Logic Summary
- Times are parsed into today’s date (
parseToday) - Time windows are always current-day based (
buildWindow) - Milliseconds are stripped to avoid comparison mismatch
- Window logic is inclusive (
start ≤ now ≤ end)
📄 License
MIT
