Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/justinmimbs/elm-date-extra
Extra functions for working with Date
https://github.com/justinmimbs/elm-date-extra
date date-format date-parser elm
Last synced: about 2 months ago
JSON representation
Extra functions for working with Date
- Host: GitHub
- URL: https://github.com/justinmimbs/elm-date-extra
- Owner: justinmimbs
- Created: 2016-07-09T14:36:30.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-10-28T09:10:37.000Z (about 5 years ago)
- Last Synced: 2024-05-21T01:07:07.247Z (8 months ago)
- Topics: date, date-format, date-parser, elm
- Language: Elm
- Homepage: http://package.elm-lang.org/packages/justinmimbs/elm-date-extra/latest
- Size: 134 KB
- Stars: 41
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
Awesome Lists containing this project
README
# elm-date-extra
Extra functions for working with the `Date` type from the Elm 0.18 core library.
## Upgrading to Elm 0.19?
The `Date` module from Elm 0.18 core was replaced by the library [`elm/time`](https://package.elm-lang.org/packages/elm/time/latest/), where the `Date` type is now replaced by `Zone` and `Posix` types. A subset of this package has been ported to work with `Zone` and `Posix`:
- [`justinmimbs/time-extra`](https://package.elm-lang.org/packages/justinmimbs/time-extra/latest/)
Most of the remaining features of this package can be found in these Elm 0.19 packages that work with `Posix`:
- [`rtfeldman/elm-iso8601-date-strings`](https://package.elm-lang.org/packages/rtfeldman/elm-iso8601-date-strings/latest/)
- [`ryannhg/date-format`](https://package.elm-lang.org/packages/ryannhg/date-format/latest/)And if you only need to work with dates, without clock time or time zones, then this `Date` type is available for Elm 0.19:
- [`justinmimbs/date`](https://package.elm-lang.org/packages/justinmimbs/date/latest/)
## Installation
```sh
elm-package install justinmimbs/elm-date-extra
```## Changelog
See the [changelog] before upgrading.
## Examples
Only examples of common uses are given below; see the [docs] for the full API.
### Create
Create dates from parts.
```elm
import Date exposing (Month(..))
import Date.Extra as DateDate.fromParts 1999 Dec 31 23 59 0 0
-- <31 December 1999, 23:59, local time>
```Create dates from strings in [ISO 8601] format.
```elm
Date.fromIsoString "2000-01-01T00:00:00.000"
-- Ok <1 January 2000, local time>Date.fromIsoString "2009-W01-1T00Z"
-- Ok <29 December 2008, UTC>Date.fromIsoString "2016-218T20:00:00.000-03:00"
-- Ok <5 August 2016, 23:00, UTC>
```Create a date from a [specified][fromSpec] day, time of day, and time offset.
```elm
Date.fromSpec
(calendarDate 2016 Aug 5)
(time 20 0 0 0)
(offset -180)
-- <5 August 2016, 23:00, UTC>
```### Format
Convert dates to formatted strings, using templates based on Date Format
Patterns in [Unicode Technical Standard #35][UTS 35].```elm
date = Date.fromParts 2007 Mar 15 13 45 56 67Date.toFormattedString "EEEE, MMMM d, y 'at' h:mm a" date
-- "Thursday, March 15, 2007 at 1:45 PM"Date.toUtcIsoString date
-- "2007-03-15T17:45:56.067Z"
-- (example has a local offset of UTC-04:00)
```### Operate
Operate on the numeric properties of dates.
```elm
import Date exposing (Month(..))
import Date.Extra as Date exposing (Interval(..))date = Date.fromParts 1999 Dec 31 23 59 59 999
Date.add Week -2 date
-- <17 December 1999, 23:59:59.999>Date.diff Day date (Date.add Week 2 date)
-- 14Date.floor Hour date
-- <31 December 1999, 23:00>Date.ceiling Monday date
-- <3 January 2000, 00:00>-- List every Monday in the month of `date`:
Date.range Monday 1
(Date.floor Month date) -- <1 December 1999>
(Date.ceiling Month date) -- <1 January 2000>
-- [ <6 December 1999>
-- , <13 December 1999>
-- , <20 December 1999>
-- , <27 December 1999>
-- ]
```[changelog]: https://github.com/justinmimbs/elm-date-extra/blob/master/changelog.md
[docs]: http://package.elm-lang.org/packages/justinmimbs/elm-date-extra/latest/Date-Extra
[ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601
[fromSpec]: http://package.elm-lang.org/packages/justinmimbs/elm-date-extra/latest/Date-Extra#fromSpec
[UTS 35]: http://www.unicode.org/reports/tr35/tr35-43/tr35-dates.html#Date_Format_Patterns