Skip to content

Latest commit

 

History

History

datetime

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

datetime

Simple helper to help parse date strings into Date, with additional functions.

Usage

The following symbols from unicode LDML are supported:

  • yyyy - numeric year.

  • yy - 2-digit year.

  • M - numeric month.

  • MM - 2-digit month.

  • d - numeric day.

  • dd - 2-digit day.

  • H - numeric hour (0-23 hours).

  • HH - 2-digit hour (00-23 hours).

  • h - numeric hour (1-12 hours).

  • hh - 2-digit hour (01-12 hours).

  • m - numeric minute.

  • mm - 2-digit minute.

  • s - numeric second.

  • ss - 2-digit second.

  • S - 1-digit fractionalSecond.

  • SS - 2-digit fractionalSecond.

  • SSS - 3-digit fractionalSecond.

  • a - dayPeriod, either AM or PM.

  • 'foo' - quoted literal.

  • ./- - unquoted literal.

Methods

parse

Takes an input string and a formatString to parse to a date.

import { parse } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

parse("20-01-2019", "dd-MM-yyyy"); // output : new Date(2019, 0, 20)
parse("2019-01-20", "yyyy-MM-dd"); // output : new Date(2019, 0, 20)
parse("20.01.2019", "dd.MM.yyyy"); // output : new Date(2019, 0, 20)
parse("01-20-2019 16:34", "MM-dd-yyyy HH:mm"); // output : new Date(2019, 0, 20, 16, 34)
parse("01-20-2019 04:34 PM", "MM-dd-yyyy hh:mm a"); // output : new Date(2019, 0, 20, 16, 34)
parse("16:34 01-20-2019", "HH:mm MM-dd-yyyy"); // output : new Date(2019, 0, 20, 16, 34)
parse("01-20-2019 16:34:23.123", "MM-dd-yyyy HH:mm:ss.SSS"); // output : new Date(2019, 0, 20, 16, 34, 23, 123)

format

Takes an input date and a formatString to format to a string.

import { format } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

format(new Date(2019, 0, 20), "dd-MM-yyyy"); // output : "20-01-2019"
format(new Date(2019, 0, 20), "yyyy-MM-dd"); // output : "2019-01-20"
format(new Date(2019, 0, 20), "dd.MM.yyyy"); // output : "20.01.2019"
format(new Date(2019, 0, 20, 16, 34), "MM-dd-yyyy HH:mm"); // output : "01-20-2019 16:34"
format(new Date(2019, 0, 20, 16, 34), "MM-dd-yyyy hh:mm a"); // output : "01-20-2019 04:34 PM"
format(new Date(2019, 0, 20, 16, 34), "HH:mm MM-dd-yyyy"); // output : "16:34 01-20-2019"
format(new Date(2019, 0, 20, 16, 34, 23, 123), "MM-dd-yyyy HH:mm:ss.SSS"); // output : "01-20-2019 16:34:23.123"
format(new Date(2019, 0, 20), "'today:' yyyy-MM-dd"); // output : "today: 2019-01-20"

dayOfYear

Returns the number of the day in the year.

import { dayOfYear } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

dayOfYear(new Date("2019-03-11T03:24:00")); // output: 70

weekOfYear

Returns the ISO week number of the provided date (1-53).

import { weekOfYear } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

weekOfYear(new Date("2020-12-28T03:24:00")); // Returns 53

toIMF

Formats the given date to IMF date time format. (Reference: https://tools.ietf.org/html/rfc7231#section-7.1.1.1 )

import { toIMF } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

toIMF(new Date(0)); // => returns "Thu, 01 Jan 1970 00:00:00 GMT"

isLeap

Returns true if the given date or year (in number) is a leap year. Returns false otherwise.

import { isLeap } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

isLeap(new Date("1970-01-01")); // => returns false
isLeap(new Date("1972-01-01")); // => returns true
isLeap(new Date("2000-01-01")); // => returns true
isLeap(new Date("2100-01-01")); // => returns false
isLeap(1972); // => returns true

difference

Returns the difference of the 2 given dates in the given units. If the units are omitted, it returns the difference in the all available units.

Available units: "milliseconds", "seconds", "minutes", "hours", "days", "weeks", "months", "quarters", "years"

import { difference } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

const date0 = new Date("2018-05-14");
const date1 = new Date("2020-05-13");

difference(date0, date1, { units: ["days", "months", "years"] });
// => returns { days: 730, months: 23, years: 1 }

difference(date0, date1);
// => returns {
//   milliseconds: 63072000000,
//   seconds: 63072000,
//   minutes: 1051200,
//   hours: 17520,
//   days: 730,
//   weeks: 104,
//   months: 23,
//   quarters: 5,
//   years: 1
// }

Constants

SECOND

import { SECOND } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

console.log(SECOND); // => 1000

MINUTE

import { MINUTE } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

console.log(MINUTE); // => 60000 (60 * 1000)

HOUR

import { HOUR } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

console.log(HOUR); // => 3600000 (60 * 60 * 1000)

DAY

import { DAY } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

console.log(DAY); // => 86400000 (24 * 60 * 60 * 1000)

WEEK

import { WEEK } from "https://deno.land/std@$STD_VERSION/datetime/mod.ts";

console.log(WEEK); // => 604800000 (7 * 24 * 60 * 60 * 1000)