Skip to main content
Glama
pshempel

MCP Time Server Node

by pshempel
TimezoneDateBuilder.ts1.42 kB
import { addDays, isAfter, setHours, setMilliseconds, setMinutes, setSeconds } from 'date-fns'; import { fromZonedTime, toZonedTime } from 'date-fns-tz'; export function setTimeInTimezone( date: Date, hours: number, minutes: number, timezone: string, ): Date { if (timezone === '' || timezone === 'UTC') { const result = new Date(date); result.setUTCHours(hours); result.setUTCMinutes(minutes); result.setUTCSeconds(0); result.setUTCMilliseconds(0); return result; } // Convert to target timezone const zonedDate = toZonedTime(date, timezone); // Set the time in that timezone let result = new Date(zonedDate); result = setHours(result, hours); result = setMinutes(result, minutes); result = setSeconds(result, 0); result = setMilliseconds(result, 0); // Convert back to UTC return fromZonedTime(result, timezone); } export function addDaysInTimezone(date: Date, days: number, timezone: string): Date { if (timezone === '' || timezone === 'UTC') { return addDays(date, days); } // Convert to timezone, add days, convert back // This preserves the local time across DST boundaries const zonedDate = toZonedTime(date, timezone); const resultInZone = addDays(zonedDate, days); return fromZonedTime(resultInZone, timezone); } export function isTimeInFuture(time: Date, referenceTime: Date): boolean { return isAfter(time, referenceTime); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pshempel/mcp-time-server-node'

If you have feedback or need assistance with the MCP directory API, please join our Discord server