npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

fisforformat

v2.3.2

Published

F is for Format, WHAT THE diff, & Friends - a JavaScript Library that extends JavaScript's Date object, providing additional functionality missing from the standard implementation. Output a date in almost any format, calculate the difference between any t

Downloads

28

Readme

f is for Format & WHAT THE diff & Friends!

A JavaScript Library that extends JavaScript's Date object to provide all the functionality that is missing from the standard implementation. With f is for Format you can easily output a date in almost any format. WHAT THE diff gives you the ability to calculate the exact difference between any two dates and output the difference in human readable text. Also included are several other useful Date methods including Date.isLeapYear and Date.getDaysInMonth.

f is for Format

Date.f(format)

Outputs a JavaScript Date Object in virtually any textual format.

format
Type: String
A string specifying how the dat should be formatted

The following characters are recognized in the format parameter string: |Character|Description|Example returned values| |--- |--- |--- | |Day|---|---| |d|Day of the month, 2 digits with leading zeros|01 to 31| |D|A textual representation of a day, three letters|Mon through Sun| |j|Day of the month without leading zeros|1 to 31| |l (lowercase 'L')|A full textual representation of the day of the week|Sunday through Saturday| |ll (lowercase 'LL')|Same as l, but with contextual labels for today,tomorrow, and yesterday|Sunday through Saturday, Today, Tomorrow, Yesterday| |N|ISO-8601 numeric representation of the day of the week|1 (for Monday) through 7 (for Sunday)| |S|English ordinal suffix for the day of the month, 2 characters|st, nd, rd or th. Works well with j| |w|Numeric representation of the day of the week|0 (for Sunday) through 6 (for Saturday)| |z|The day of the year (starting from 0)|0 through 365| |Week|---|---| |W|ISO-8601 week number of year, weeks starting on Monday|Example: 42 (the 42nd week in the year)| |Month|---|---| |F|A full textual representation of a month, such as January or March|January through December| |m|Numeric representation of a month, with leading zeros|01 through 12| |M|A short textual representation of a month, three letters|Jan through Dec| |n|Numeric representation of a month, without leading zeros|1 through 12| |t|Number of days in the given month|28 through 31| |Year|---|---| |L|Whether it's a leap year|1 if it is a leap year, 0 otherwise.| |o|ISO-8601 week-numbering year. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead.|Examples: 1999 or 2003| |Y|A full numeric representation of a year, 4 digits|Examples: 1999 or 2003| |y|A two digit representation of a year|Examples: 99 or 03| |Time|---|---| |a|Lowercase Ante meridiem and Post meridiem|am or pm| |A|Uppercase Ante meridiem and Post meridiem|AM or PM| |B|Swatch Internet time|000 through 999| |g|12-hour format of an hour without leading zeros|1 through 12| |G|24-hour format of an hour without leading zeros|0 through 23| |h|12-hour format of an hour with leading zeros|01 through 12| |H|24-hour format of an hour with leading zeros|00 through 23| |i|Minutes with leading zeros|00 to 59| |ii|Minutes without leading zeros|0 to 59| |s|Seconds with leading zeros|00 through 59| |ss|Seconds without leading zeros|0 through 59| |v|Milliseconds|Example: 654| |Timezone|---|---| |e|Timezone identifier|Examples: Pacific Daylight Time, Pacific Standard Time| |I (capital i)|Whether or not the date is in daylight saving time|true if Daylight Saving Time, false otherwise.| |O|Difference to Greenwich time (GMT) without colon between hours and minutes|Example: +0200| |P|Difference to Greenwich time (GMT) with colon between hours and minutes|Example: +02:00| |p|The same as P, but returns Z instead of +00:00|Example: +02:00| |Z|Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive.|-43200 through 50400| |Full Date/Time|---|---| |c|ISO 8601 date|2004-02-12T15:19:21+00:00| |r|RFC 2822 formatted date|Example: Thu, 21 Dec 2000 16:01:07 +0200| |U|Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)|1627616755444| |@|String representation of the relative time between the Date and the current time|Yesterday / Tomorrow / 5 minutes ago / 7 months from now|

Example:

var myDate = new Date();
var myFormattedDate = myDate.f("l, F j, y");
var myFormattedDate2 = myDate.f("m/d/Y H:i:s");
alert("Today is: " + myFormattedDate);
alert("Or would you prefer something more specific: " + myFormattedDate2);

WHAT THE diff??

Date.diff([date], [settings])

Calculates the exact difference between any two dates, broken down into customizable increments.

date
Type: Date object, valid date string, or Unix epoch timestamp
Optional The datetime to compare against. If not specified the current time will be used.

settings
Type: PlainObject or valid unit string
Optional A set of key/value pairs that define how the difference should be displayed.

  • abbr (dafault: FALSE)
    Type: Boolean
    Use abbreviated time unit names
  • divider (default: ", ")
    Type: String
    Specifies the divider to place between units of time
  • labels
    Type: PlainObject, Boolean
    A set of key value pairs that can be used to override the default unit labels. Pass FALSE to not display any labels.
  • lc (default: FALSE)
    Type: Boolean
    When set to TRUE, all unit labels will be displayed in lowercase
  • same (default: "Same")
    Type: String
    A string specifying the label to use when the two dates are identical
  • units (default: "")*
    Type: String
    A string specifying which units of time to use to display the difference
  • zeros (default: FALSE)
    Type: Boolean
    When set to TRUE, leading zeros will be displayed for all applicable time units

The following characters are used to specify the units of time to display: |Character|Unit of Time| |---|--- | |T|Millenia| |C|Centuries| |D|Decades| |Y|Years| |M|Months| |W|Weeks| |d|Days| |H|Hours| |m|Minutes| |S|Seconds| |N|Miliseconds| |*|All (default)|

Example:

var oldDate = new Date("03/22/2009 23:23:12");
var curDate = new Date();
var theDiff = curDate.diff(oldDate);
//is the same as
var theDiff2 = curDate.diff(oldDate, "TCDYMWdHmSN");
alert("And the difference is: " + theDiff);

var theDiff3 = curDate.diff(oldDate, {
   units : "dS",
   abbr  : true,
   divider : " - "
});
alert("The diff in just days and seconds is: " + theDiff3);

(& Friends!)

Date.getDaylightSavingsDays()

Returns an array of two date objects for the two daylight savings change days within the year of the provided date

Example:

var thisYear = new Date();
alert(
   "On " + thisYear.getDaylightSavingsDays[0].f("DD, MMM d") + " spring forward.\n"
   + "On " + thisYear.getDaylightSavingsDays[1].f("DD, MMM d") + " fall back."
);

Date.getDaysInMonth()

Returns the number of days in the selected month

Example:

var thisMonth = new Date();
var daysThisMonth = thisMonth.getDaysInMonth();
alert("There are " + daysThisMonth + " days in this month.");

Date.isDaylightSavings()

Returns TRUE if the daylight savings is in effect for the date provided, otherwise FALSE

Example:

var tomorrow = new Date();
tomorrow.setDate(+1);
alert("Daylight Savings is " + (tomorrow.isDaylightSavings() ? "" : "not ") + "currently in effect!");

Date.isDaylightSavingsDay()

Returns TRUE if the provided date is a daylight savings change day, otherwise FALSE

Example:

var tomorrow = new Date();
tomorrow.setDate(+1);
if(tomorrow.isDaylightSavingsDay()) alert("Don't forget to change the clock tonight!");

Date.isLeapYear()

Returns TRUE if the selected year is a leap year, otherwise FALSE

Example:

var thisYear = new Date();
if(thisYear.isLeapYear()) alert("It's a leap year!");
else {
   alert("Maybe next year...");
   thisYear.setYear(+1);
   if(thisYear.isLeapYear()) alert("Yes!!");
   else alert("Darn.");
}

Date.when()

Returns a historical timestamp indicating how long ago the provided date was, like the timestamps on social media posts (Note: Future dates will be labeled "Now")

Example:

var now = new Date();
alert("This date is " + now.when());
now.setHours(-2);
alert("But this date is from " + now.when());