Skip to content

ChronoUtilz is a lightweight, high-performance date utility library for JavaScript and TypeScript. Designed with minimal bundle size and developer productivity in mind, it provides essential date operations without the bloat of full-featured date libraries

License

Notifications You must be signed in to change notification settings

Mfuon2/chrono-utilz

πŸ“… ChronoUtilz

A comprehensive date utility library with 135+ functions for serious date manipulation in JavaScript and TypeScript applications.

npm version Bundle Size Downloads License

πŸš€ Main Features

Core Date Operations

import { parseNaturalLanguage, convertTimezone, generateRecurringDates, getRelativeTime } from '@mfuon2/chrono-utilz';

// Natural language parsing (assuming today is Jan 12, 2025)
parseNaturalLanguage('next Friday');     // β†’ 2025-01-17
parseNaturalLanguage('in 2 weeks');      // β†’ 2025-01-26  
parseNaturalLanguage('3 days ago');      // β†’ 2025-01-09
parseNaturalLanguage('tomorrow');        // β†’ 2025-01-13
parseNaturalLanguage('last Monday');     // β†’ 2025-01-06

// Timezone conversion
convertTimezone(new Date('2025-01-12T15:00:00Z'), {
  from: 'UTC', 
  to: 'America/New_York'
});                                       // β†’ 2025-01-12T10:00:00 (EST)

// Recurring dates
generateRecurringDates(new Date('2025-01-12'), {
  pattern: 'weekly',
  maxOccurrences: 3
});                                       // β†’ [2025-01-12, 2025-01-19, 2025-01-26]

// Relative time 
getRelativeTime('2025-01-12T15:35:00Z');  // β†’ "2 minutes ago"
getRelativeTime('2025-01-12T16:30:00Z');  // β†’ "in 1 hour"
getRelativeTime('2025-01-10T15:30:00Z');  // β†’ "2 days ago" 
getRelativeTime('2025-01-15T15:30:00Z');  // β†’ "in 3 days"

Business Logic

import { getBusinessDays, getFiscalQuarter, generatePayrollPeriods } from '@mfuon2/chrono-utilz';

// Working days calculation
getBusinessDays(startDate, endDate);     // β†’ Number of business days

// Fiscal periods
getFiscalQuarter(new Date());             // β†’ Current fiscal quarter info

// Payroll periods
generatePayrollPeriods(2025, 'biweekly'); // β†’ All payroll periods for 2025

Advanced Formatting

import { formatDate, formatDuration, formatLocalized } from '@mfuon2/chrono-utilz';

// Multiple date formats
formatDate(new Date(), 'YYYY-MM-DD');    // β†’ "2025-01-15"
formatDate(new Date(), 'MMM DD, YYYY');  // β†’ "Jan 15, 2025"

// Duration formatting
formatDuration(3661000, 'verbose');      // β†’ "1 hour 1 minute 1 second"

// Localized formatting  
formatLocalized(new Date(), 'en-US');    // β†’ US format
formatLocalized(new Date(), 'de-DE');    // β†’ German format

Installation

# Using npm
npm install @mfuon2/chrono-utilz

# Using yarn
yarn add @mfuon2/chrono-utilz

# Using pnpm
pnpm add @mfuon2/chrono-utilz

Key Functions by Category

πŸ“… Core Operations (45+ functions) parseDate, addTime, subtractTime, getDateDiff, isBetweenDates, startOf, endOf, convertTimezone, parseNaturalLanguage, generateRecurringDates

πŸ’Ό Business Logic (55+ functions)
getBusinessDays, getFiscalQuarter, generatePayrollPeriods, calculateWorkingHours, generateShiftSchedule, calculateSLACompliance, getHolidays

🎨 Formatting & Parsing (35+ functions) formatDate, formatDuration, parseISO, smartParse, formatLocalized, humanizeDuration

For complete function list and examples, visit our documentation site

Environment Support

  • Node.js: 14.0.0+
  • Browsers: Modern browsers with ES2015 support
  • TypeScript: Full type safety included
  • Zero dependencies - Lightweight and fast

Contributing

We welcome contributions! See our Contributing Guide for details.

What's Next

See our roadmap and upcoming features on the documentation site.

License

MIT

About

ChronoUtilz is a lightweight, high-performance date utility library for JavaScript and TypeScript. Designed with minimal bundle size and developer productivity in mind, it provides essential date operations without the bloat of full-featured date libraries

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •