Minute

startOfMinute

Returns the timestamp at the start of the minute (seconds and milliseconds set to 0).

reference/minute/startOfMinute.ts
import { startOfMinute } from "datezone";

// Current timestamp
const now = Date.now();

// Get start of current minute
const startOfCurrentMinute = startOfMinute(now);
console.log(`Now: ${new Date(now).toISOString()}`);
console.log(
	`Start of current minute: ${new Date(startOfCurrentMinute).toISOString()}`,
);

// Example with specific timestamps
const timestamps = [
	new Date("2023-12-25T15:30:45.123Z").getTime(),
	new Date("2023-12-25T09:15:30.456Z").getTime(),
	new Date("2023-12-25T00:59:59.999Z").getTime(),
	new Date("2023-12-25T23:00:00.000Z").getTime(),
];

console.log("\nExamples with specific timestamps:");
for (const ts of timestamps) {
	const startMinute = startOfMinute(ts);
	console.log(
		`${new Date(ts).toISOString()} → ${new Date(startMinute).toISOString()}`,
	);
}

// Demonstrate that it removes seconds and milliseconds
console.log("\nDemonstrating precision:");
const precise = new Date("2023-12-25T14:27:38.542Z").getTime();
console.log(`Original: ${new Date(precise).toISOString()}`);
console.log(
	`Start of minute: ${new Date(startOfMinute(precise)).toISOString()}`,
);

endOfMinute

Returns the timestamp at the end of the minute (59 seconds, 999 milliseconds).

reference/minute/endOfMinute.ts
import { endOfMinute } from "datezone";

// Current timestamp
const now = Date.now();

// Get end of current minute
const endOfCurrentMinute = endOfMinute(now);
console.log(`Now: ${new Date(now).toISOString()}`);
console.log(
	`End of current minute: ${new Date(endOfCurrentMinute).toISOString()}`,
);

// Example with specific timestamps
const timestamps = [
	new Date("2023-12-25T15:30:45.123Z").getTime(),
	new Date("2023-12-25T09:15:30.456Z").getTime(),
	new Date("2023-12-25T00:00:00.000Z").getTime(),
	new Date("2023-12-25T23:59:59.999Z").getTime(),
];

console.log("\nExamples with specific timestamps:");
for (const ts of timestamps) {
	const endMinute = endOfMinute(ts);
	console.log(
		`${new Date(ts).toISOString()} → ${new Date(endMinute).toISOString()}`,
	);
}

// Demonstrate precision - end of minute should be xx:xx:59.999
console.log("\nDemonstrating precision:");
const precise = new Date("2023-12-25T14:27:38.542Z").getTime();
console.log(`Original: ${new Date(precise).toISOString()}`);
console.log(`End of minute: ${new Date(endOfMinute(precise)).toISOString()}`);

// Show the exact millisecond difference
console.log(`\nDifference in milliseconds: ${endOfMinute(precise) - precise}`);

addMinutes

Adds a specified number of minutes to a timestamp.

reference/minute/addMinutes.ts
import { addMinutes } from "datezone";

// Current timestamp
const now = Date.now();

// Add minutes to timestamp
console.log("Adding minutes to timestamp:");

// Add positive minutes
const inFifteenMinutes = addMinutes(now, 15);
console.log(`Now: ${new Date(now).toISOString()}`);
console.log(`In 15 minutes: ${new Date(inFifteenMinutes).toISOString()}`);

// Add negative minutes (subtract)
const fifteenMinutesAgo = addMinutes(now, -15);
console.log(`15 minutes ago: ${new Date(fifteenMinutesAgo).toISOString()}`);

// Add many minutes
const inTwoHours = addMinutes(now, 120);
console.log(`In 120 minutes (2 hours): ${new Date(inTwoHours).toISOString()}`);

// Example with specific timestamp
const specificTime = new Date("2023-12-25T10:00:00Z").getTime();
console.log("\nSpecific time examples:");
console.log(`Base: ${new Date(specificTime).toISOString()}`);
console.log(
	`+30 minutes: ${new Date(addMinutes(specificTime, 30)).toISOString()}`,
);
console.log(
	`-45 minutes: ${new Date(addMinutes(specificTime, -45)).toISOString()}`,
);

subMinutes

Subtracts a specified number of minutes from a timestamp.

reference/minute/subMinutes.ts
import { subMinutes } from "datezone";

// Current timestamp
const now = Date.now();

// Subtract minutes from timestamp
console.log("Subtracting minutes from timestamp:");

// Subtract positive minutes
const thirtyMinutesAgo = subMinutes(now, 30);
console.log(`Now: ${new Date(now).toISOString()}`);
console.log(`30 minutes ago: ${new Date(thirtyMinutesAgo).toISOString()}`);

// Subtract negative minutes (adds)
const inTwentyMinutes = subMinutes(now, -20);
console.log(
	`Subtracting -20 minutes (adds 20): ${new Date(inTwentyMinutes).toISOString()}`,
);

// Subtract many minutes
const twoHoursAgo = subMinutes(now, 120);
console.log(
	`120 minutes ago (2 hours): ${new Date(twoHoursAgo).toISOString()}`,
);

// Example with specific timestamp
const specificTime = new Date("2023-12-25T15:30:00Z").getTime();
console.log("\nSpecific time examples:");
console.log(`Base: ${new Date(specificTime).toISOString()}`);
console.log(
	`-10 minutes: ${new Date(subMinutes(specificTime, 10)).toISOString()}`,
);
console.log(
	`-90 minutes: ${new Date(subMinutes(specificTime, 90)).toISOString()}`,
);

minute

Minute manipulation utilities for working with date and time values at the minute granularity.

reference/minute/minute.ts
import { minute } from "datezone";

const timestamp = Date.UTC(2024, 0, 1, 12, 10, 15);
console.log("Minues", minute(timestamp, "Europe/Stockholm"));

On this page