This entire repository was created completely with AI, using the hero-ai-package-creator, which is open-source, uses GPT-4, and is written & maintained by Sam Chahine ❣️🧞♀️
A collection of functions for handling dates and times, such as formatting, calculating differences, converting to different time zones, and more.
Takes a Date object or Unix timestamp (milliseconds since January 1 1970) and a format string, and returns a formatted string. Format string may contain placeholders to insert parts of the date. For example, formatDate(new Date(), 'MMMM Do, YYYY')
will return 'January 1st, 2022'. Should handle leap years and edge cases such as the year 2000 correctly. Rejects invalid inputs such as when the Unix timestamp is negative or the format string contains unrecognized placeholders.
Takes two Date objects or Unix timestamps and returns the time difference between them in a specified unit (seconds, minutes, hours, days, months, years). Automatically handles leap years and daylight-saving time changes. Accepts negative differences (e.g., when the first input date is later than the second), but rejects non-Date or non-Unix timestamp inputs.
Takes a Date object or Unix timestamp, its current time zone (represented as UTC offset in minutes), and the desired time zone (represented as UTC offset in minutes), and converts the date to match its new time zone. Returns a new Date object with the converted time. Handles edge cases like crossing the International Date Line, but rejects non-Date or non-Unix timestamp inputs and non-integer time zones.
Takes a Date object or Unix timestamp and returns a new Date object set at the start of the day (00:00:00) for the input date. Rejects non-Date or non-Unix timestamp inputs.
Takes a Date object or Unix timestamp and returns a new Date object set at the end of the day (23:59:59) for the input date. Rejects non-Date or non-Unix timestamp inputs.
Takes a Date object and returns its Unix timestamp (milliseconds since January 1 1970). Rejects non-Date inputs or negative Unix timestamps.
Takes a Unix timestamp (milliseconds since January 1 1970) and returns a Date object. Rejects non-Unix timestamp inputs or negative Unix timestamps.
Takes a year number and returns a boolean value indicating whether it is a leap year. Handles edge cases like the year 2000 correctly. Rejects non-integer or negative year values.
Takes a year number and a month number (1-12) and returns the number of days in that month, considering leap years. Rejects non-integer, negative, or out-of-range year and month values.
Takes a Date object or Unix timestamp, a value, and a time unit (seconds, minutes, hours, days, months, years), and returns a new Date object with the added time. Automatically handles leap years and daylight-saving time changes, but rejects non-Date or non-Unix timestamp inputs, non-integer values, or non-recognized time units.
Sam Chahine, at Hero