Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

implydata/chronoshift

Open more actions menu

Repository files navigation

Chronoshift

Chronoshift is a library to manipulate time with timezones

Installation

In node simply run: npm install chronoshift

In the browser you should use the browserified package/chronoshift.js

Usage

Chronoshift can be used in two ways:

1. By using the provided floor, ceil, and move methods

Use chronoshift[period][fn](date, timezone, moveAmount) where

  • period is one of ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond']
  • fn is one of ['floor, ceil, move']
var tz = Timezone.fromJS("America/Los_Angeles");

var hourStart = chronoshift.hour.floor(new Date("2012-11-04T00:30:00-07:00"), tz));

hourStart.getTime() === new Date("2012-11-04T00:00:00-07:00").getTime()

2. By using the Duration class

Construct a new duration with a ISO Duration string. Then you can call floor, ceil and move on it.

Note that floor and ceil only work for 'simple' durations like "P1x" and "PT1x".

var Duration = chronoshift.Duration;
var tz = Timezone.fromJS("America/Los_Angeles");

p1w = Duration.formJS('P1W');

var weekStart;

weekStart = p1w.floor(new Date("2013-09-29T01:02:03.456-07:00"), tz)
weekStart.getTime() === new Date("2013-09-29T00:00:00.000-07:00").getTime()

weekStart = p1w.floor(new Date("2013-10-03T01:02:03.456-07:00"), tz)
weekStart.getTime() === new Date("2013-09-29T00:00:00.000-07:00").getTime()

A duration can also be constructed from two dates and a timezone:

new Duration(
  new Date("2012-10-29T00:00:00-07:00")
  new Date("2012-11-05T00:00:00-08:00")
  tz
).toString() // => 'P7D'

new Duration(
  new Date("2012-01-01T00:00:00-08:00")
  new Date("2013-03-04T04:05:06-08:00")
  tz
).toString() // => 'P1Y2M3DT4H5M6S'

Useful!

Development

Clone the repository :

$ git clone https://github.com/implyio/chronoshift.git

Install the dependencies :

$ npm install

Watch :

$ npm run watch

Questions & Support

Please file bugs and feature requests by opening and issue on GitHub and direct all questions to our user groups.

About

a library to manipulate time with timezones

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 7

Morty Proxy This is a proxified and sanitized view of the page, visit original site.