Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

date-time-js

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

date-time-js

A lightweight TypeScript library which parses, formats and manipulates dates in various cultures.

  • 1.0.6
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
93
increased by34.78%
Maintainers
1
Weekly downloads
 
Created
Source

DateTimeJS

NPM Version NPM Downloads

Overview

A lightweight TypeScript library which parses, formats and manipulates dates in various cultures.

Download

Download it using npm:

npm install date-time-js --save

Getting started

For TypeScript projects:
import { DateTime } from 'date-time-js';

For JavaScript projects:
<script src="node_modules/source/date-time.js"></script>

Usage

Parsing

Supports cultures: en-GB, en-US, ru-RU, uk-UA.

new DateTime('7')                    // '2015-02-07T00:00:00Z' (Takes a current year and month)
new DateTime('1/7')                  // '2015-07-01T00:00:00Z' (Takes a current year)
new DateTime('1/7/87')               // '1987-07-01T00:00:00Z'
new DateTime('010787')               // '1987-07-01T00:00:00Z'
new DateTime('1/7/15')               // '2015-07-01T00:00:00Z'
new DateTime('1/7/1987')             // '1987-07-01T00:00:00Z'
new DateTime('1.7.1987')             // '1987-07-01T00:00:00Z'
new DateTime('1-7-1987')             // '1987-07-01T00:00:00Z'
new DateTime('1 7 1987')             // '1987-07-01T00:00:00Z'
new DateTime('01071987')             // '1987-07-01T00:00:00Z'

new DateTime('2015/1/7', 'en-GB')    // '2015-07-01T00:00:00Z'
new DateTime('2015/1/7', 'en-US')    // '2015-01-07T00:00:00Z'

new DateTime('21 Feb 15')            // '2015-02-21T00:00:00Z'
new DateTime('21 February 15')       // '2015-02-21T00:00:00Z'
new DateTime('21 February 2015')     // '2015-02-21T00:00:00Z'
new DateTime('2015 February 21')     // '2015-02-21T00:00:00Z'

new DateTime('21 фев 15')            // '2015-02-21T00:00:00Z'
new DateTime('21 фев 2015')          // '2015-02-21T00:00:00Z'
new DateTime('21 февраль 15')        // '2015-02-21T00:00:00Z'
new DateTime('21 февраля 15')        // '2015-02-21T00:00:00Z'
new DateTime('21 февраль 2015')      // '2015-02-21T00:00:00Z'
new DateTime('2015 февраль 21')      // '2015-02-21T00:00:00Z'

new DateTime('21 лют 15')            // '2015-02-21T00:00:00Z'
new DateTime('21 лютий 15')          // '2015-02-21T00:00:00Z'

new DateTime('Feb 21, 15')           // '2015-02-21T00:00:00Z'
new DateTime('Feb21,15')             // '2015-02-21T00:00:00Z'
new DateTime('Feb 21, 2015')         // '2015-02-21T00:00:00Z'
new DateTime('Feb21,2015')           // '2015-02-21T00:00:00Z'

new DateTime('1987-07-01T00:00:00Z') // '1987-07-01T00:00:00Z'

Manipulation

Addition

new DateTime('2015-02-21T10:45:30.000Z').add(2, 'millisecond')      // '2015-02-21T10:45:30.002Z'
new DateTime('2015-02-21T10:45:30Z').add(2, 'second')               // '2015-02-21T10:45:32Z'
new DateTime('2015-02-21T10:45:30Z').add(2, 'minute')               // '2015-02-21T10:47:30Z'
new DateTime('2015-02-21T10:45:30Z').add(2, 'hour')                 // '2015-02-21T12:45:30Z'
new DateTime('2015-02-21T10:45:30Z').add(2, 'day')                  // '2015-02-23T10:45:30Z'
new DateTime('2015-02-21T10:45:30Z').add(2, 'month')                // '2015-04-21T10:45:30Z'
new DateTime('2015-02-21T10:45:30Z').add(2, 'year')                 // '2017-02-21T10:45:30Z'

Subtraction

new DateTime('2015-02-21T10:45:30.500Z').subtract(2, 'millisecond') // '2015-02-21T10:45:30.498Z'
new DateTime('2015-02-21T10:45:30Z').subtract(2, 'second')          // '2015-02-21T10:45:28Z'
new DateTime('2015-02-21T10:45:30Z').subtract(2, 'minute')          // '2015-02-21T10:43:30Z'
new DateTime('2015-02-21T10:45:30Z').subtract(2, 'hour')            // '2015-02-21T08:45:30Z'
new DateTime('2015-02-21T10:45:30Z').subtract(2, 'day')             // '2015-02-19T10:45:30Z'
new DateTime('2015-02-21T10:45:30Z').subtract(1, 'month')           // '2015-01-21T10:45:30Z'
new DateTime('2015-02-21T10:45:30Z').subtract(2, 'year')            // '2013-02-21T10:45:30Z'

Start of time

new DateTime('2015-02-21T10:45:35.500Z').startOf('second')          // '2015-02-21T10:45:35.000Z'
new DateTime('2015-02-21T10:45:35.500Z').startOf('minute')          // '2015-02-21T10:45:00.000Z'
new DateTime('2015-02-21T10:45:35.500Z').startOf('hour')            // '2015-02-21T10:00:00.000Z'
new DateTime('2015-02-21T10:45:35.500Z').startOf('day')             // '2015-02-21T00:00:00.000Z'
new DateTime('2015-02-21T10:45:35.500Z').startOf('month')           // '2015-02-01T00:00:00.000Z'
new DateTime('2015-02-21T10:45:35.500Z').startOf('year')            // '2015-01-01T00:00:00.000Z'

End of time

new DateTime('2015-01-01T00:00:00.000Z').endOf('second')            // '2015-01-01T00:00:00.999Z'
new DateTime('2015-01-01T00:00:00.000Z').endOf('minute')            // '2015-01-01T00:00:59.999Z'
new DateTime('2015-01-01T00:00:00.000Z').endOf('hour')              // '2015-01-01T00:59:59.999Z'
new DateTime('2015-01-01T00:00:00.000Z').endOf('day')               // '2015-01-01T23:59:59.999Z'
new DateTime('2015-01-01T00:00:00.000Z').endOf('month')             // '2015-01-31T23:59:59.999Z'
new DateTime('2015-01-01T00:00:00.000Z').endOf('year')              // '2015-12-31T23:59:59.999Z'

Getting and setting

new DateTime('2015-02-21T10:45:30.500Z').millisecond()               // 500
new DateTime('2015-02-21T10:45:30.000Z').millisecond(10)             // '2015-02-21T10:45:30.010Z'

new DateTime('2015-02-21T10:45:30Z').second()                        // 30
new DateTime('2015-02-21T10:45:30Z').second(10)                      // '2015-02-21T10:45:10Z'

new DateTime('2015-02-21T10:45:00Z').minute()                        // 45
new DateTime('2015-02-21T10:45:30Z').minute(10)                      // '2015-02-21T10:10:30Z'

new DateTime('2015-02-21T10:45:00Z').hour()                          // 10
new DateTime('2015-02-21T10:45:30Z').hour(20)                        // '2015-02-21T20:45:30Z'

new DateTime('2015-02-21T10:45:00Z').date()                          // 21
new DateTime('2015-02-21T10:45:30Z').date(25)                        // '2015-02-25T10:45:30Z'

new DateTime('2015-02-21T10:45:00Z').month()                         // 1
new DateTime('2015-02-21T10:45:30Z').month(3)                        // '2015-04-21T10:45:30Z'

new DateTime('2015-02-21T10:45:00Z').year()                          // 2015
new DateTime('2015-02-21T10:45:30Z').year(2010)                      // '2010-02-21T10:45:30Z'

new DateTime('2015-02-21T10:45:00-03:00').offset()                   // -180
new DateTime('2015-02-21T10:45:30Z').offset(-180)                    // '2015-02-21T10:45:00-03:00'  

Chaining

let formattedDate = new DateTime('2015-02-21T10:45:30Z')
    .millisecond(10)
    .second(10)
    .minute(10)
    .hour(20)
    .date(25)
    .month(3)
    .year(2010)
    .add(2, 'millisecond')
    .subtract(3, 'millisecond')
    .offset(-180)
    .format('yyyy-MM-ddTHH:mm:ss.fffK');    // '2010-04-25T20:10:10.009-03:00'

Copying

let date = new DateTime('2015-02-21T10:45:00Z');
let dateCopy = date.copy();

Comparison

new DateTime('2016-09-26T00:00:00Z').difference('2016-09-26T00:00:01Z')                        // -1000
new DateTime('2016-09-26T00:00:00Z').isEqual('2016-09-26T00:00:00Z')                           // true
new DateTime('2016-09-26T00:00:00Z').isLess('2016-09-26T00:00:00Z')                            // false
new DateTime('2016-09-26T00:00:00Z').isLessOrEqual('2016-09-26T00:00:01Z')                     // true
new DateTime('2016-09-26T00:00:00Z').isGreater('2016-09-26T00:00:00Z')                         // false
new DateTime('2016-09-26T00:00:00Z').isGreaterOrEqual('2016-09-26T00:00:00Z')                  // true
new DateTime('2016-08-15T00:00:00Z').isBetween('2016-08-01T00:00:00Z', '2016-09-01T00:00:00Z') // true

Formatting

new DateTime('1/7/1987').format()            // '1987-07-01T00:00:00Z'
new DateTime('1/7/1987').format('yyyy-M-dd') // '1987-7-01'

Standard date and time format specifiers

Format specifierDescriptionExamples
fThe milliseconds, from 0 to 9.2015-02-01T03:05:09.4Z -> 4
ffThe milliseconds, from 00 to 99.2015-02-01T03:05:09.49Z -> 49
fffThe milliseconds, from 000 to 999.2015-02-01T03:05:09.499Z -> 499
sThe second, from 0 through 59.2015-02-01T03:05:09Z -> 9
2015-02-21T13:45:30Z -> 30
ssThe second, from 00 through 59.2015-02-01T03:05:09Z -> 09
2015-02-21T13:45:30Z -> 30
mThe minute, from 0 through 59.2015-02-01T03:05:30Z -> 5
2015-02-21T13:45:30Z -> 45
mmThe minute, from 00 through 59.2015-02-01T03:05:30Z -> 05
2015-02-21T13:45:30Z -> 45
HHThe hour, using a 24-hour clock from 00 to 23.2015-02-01T03:45:30Z -> 03
2015-02-21T13:45:30Z -> 13
dThe day of the month, from 1 through 31.2015-02-01T13:45:30Z -> 1
2015-02-21T13:45:30Z -> 21
ddThe day of the month, from 01 through 31.2015-02-01T13:45:30Z -> 01
2015-02-21T13:45:30Z -> 21
dddThe abbreviated name of the day of the week.2015-02-21T13:45:30Z -> Mon (en-US)
2015-02-21T13:45:30Z -> пн (ru-RU)
ddddThe full name of the day of the week.2015-02-21T13:45:30Z -> Monday (en-US)
2015-02-21T13:45:30Z -> понедельник (ru-RU)
MThe month, from 1 through 12.2015-02-21T13:45:30Z -> 2
MMThe month, from 01 through 12.2015-02-21T13:45:30Z -> 02
MMMThe abbreviated name of the month.2015-02-21T13:45:30Z -> Feb (en-US)
2015-02-21T13:45:30Z -> фев (ru-RU)
MMMMThe full name of the month.2015-02-21T13:45:30Z -> February (en-US)
2015-02-21T13:45:30Z -> февраль (ru-RU)
yyThe year, from 00 to 99.1987-02-21T13:45:30Z -> 87
2015-02-21T13:45:30Z -> 15
2000-02-21T13:45:30Z -> 00
yyyyThe year as a four-digit number.1987-02-21T13:45:30Z -> 1987
2015-02-21T13:45:30Z -> 2015
2000-02-21T13:45:30Z -> 2000
KTime zone information.2015-02-21T13:45:30Z -> Z
2015-02-21T13:45:30-07:00 -> -07:00

Miscellaneous

new DateTime()                                    // Today
DateTime.createEmpty().isEmpty()                  // true

new DateTime('2016-09-26T00:00:00Z').isUtc()      // true
new DateTime('2016-09-26T00:00:00+01:00').isUtc() // false
new DateTime('2015-02-21T20:45:00+04:00').toUtc() // '2015-02-21T16:45:00Z'

DateTime.parseTimeZone('Z')                       // 0
DateTime.parseTimeZone('+01:00')                  // 60
DateTime.parseTimeZone('-01:00')                  // -60

DateTime.formatTimeZone(0)                        // 'Z'
DateTime.formatTimeZone(60)                       // '+01:00'
DateTime.formatTimeZone(-60)                      // '-01:00'

DateTime.isDateTime(null)                         // false
DateTime.isDateTime(new DateTime())               // true

DateTime.isDate(new Date())                       // true
DateTime.isDate('2015-02-21')                     // false

Development

  1. Install dependencies.
    npm install
  2. Run the project.
    gulp

Testing

gulp test

Keywords

FAQs

Package last updated on 11 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc