lightweight, powerful javascript datetimepicker with no dependencies

Overview

flatpickr - javascript datetime picker

Actions Status

Coverage npm version CDNJS License

blue green confetti red default dark

Motivation

Almost every large SPA or project involves date and time input. Browser's native implementations of those are inconsistent and limited in functionality. Most other libraries require you to pull in heavy dependencies like jQuery, Bootstrap, and moment.js. I wanted something that was good-looking out of the box, dependency-free, powerful, and extensible.

Feature overview:

  • Dependency-free (no bloated bundles)
  • Simple, polished UX
  • Date + time input
  • Range selections
  • Ability to select multiple dates
  • Can be used as just a time picker
  • Display dates in a human-friendly format
  • Easily disable specific dates, date ranges, or any date using arbitrary logic
  • Week numbers
  • 51 locales
  • 8 colorful themes (incl. dark and material)
  • Numerous plugins
  • Libraries available for React, Angular, Vue, Ember, and more

flatpickr provides more functionality at a fraction of the size of other libraries.

Compatibility

IE9 and up, Edge, iOS Safari 6+, Chrome 8+, Firefox 6+

Install & Use

Demos and documentation: https://flatpickr.js.org

See also:

Supporting flatpickr

flatpickr will never change its license, pester users for donations, or engage in other user-hostile behavior.

Nevertheless, if you enjoyed working with this library or if its made your life easier, you can buy me a cup of coffee :)

Buy Me a Coffee at ko-fi.com

Comments
  • DateTime range with two inputs

    DateTime range with two inputs

    JSFiddle: https://jsfiddle.net/8q7h7tff/

    Expected Behavior

    After selecting a date range (start + end), I should be able to somehow edit the start time.

    Current Behavior

    After selecting the range, one cannot edit the start time without resetting the range.

    Possible Solution

    Perhaps we need separate time fields, or a way to distinguish between START time and END time.

    See http://element.eleme.io/#/en-US/component/datetime-picker

    Your Environment

    • Version used: 2.3.5
    • Browser Name and version: Chrome 55
    • Operating System and version (desktop or mobile): macOS
    will-implement 
    opened by mgibbs189 41
  • Calendar with time lacks visual cue for next action

    Calendar with time lacks visual cue for next action

    With the basic flatpickr calendar, the UX is extremely elegant. The moment one clicks a day number, the calendar popup closes. But when the calendar shows the time inputs via enableTime: true, there is no intuitive next step.

    screen shot 2016-11-16 at 10 48 22 am

    Yes, anyone with half a brain will eventually click the background, away from the calendar, to close it. But not before wasting a moment to think "Wait, where's the OK button?". Even darkening the background onOpen and fading it onClose, as I've done in my test implementation, is insufficient in communicating a next step.

    Since the user will have to click once more anyways to close the calendar, I'd much rather give them something to click, with a behavior that is universally recognizable. I'm going to add an "OK" button below the time input. But I wanted to mention it here, and suggest you implement this in a future release, as it's one of the few missing elements in an otherwise magnificent offering.

    Cheers, and thanks.

    opened by designosis 34
  • HTML5 form validation disabled on Flatpickr inputs

    HTML5 form validation disabled on Flatpickr inputs

    When submitting a form where a Flatpickr input element has no value, and that element contains the required attribute, the form will allow submission. The expected behavior is that an empty input field with a required attribute will require user input prior to submission via HTML5 form validation.

    Reproduction Link

    https://jsfiddle.net/aj6k3f1v/40/ (Comment out the javascript to see the expected behavior as well).

    Your Environment

    • flatpickr version used: 3.0.5-1
    • Browser name and version: Chrome 58.0.3029.110 (64-bit)
    • OS and version: macOS Sierra, 10.12.5
    opened by skwny 20
  • Invalid date supplied: 2016-12-27T16:16:22.585Z

    Invalid date supplied: 2016-12-27T16:16:22.585Z

    It appears minDate is still not parsed. I see jumpDate is parsed, but then minDate appears to not be. https://github.com/chmln/flatpickr/blob/bc0e3a265db0988d58e23b79d610b1f23e03c335/src/flatpickr.js#L147

    I assume the same issue will apply to maxDate. Every single date in the code needs to be parsed. There should be a central parsing location, as to not have all of these issues.

    @chmln could we please add tests for setting minDate and maxDate to the values I am using? We are 5 patch versions in now and still having issues. This definitely needs to be tested.

    Expected Behavior

    Allow actually setting minDate and maxDate

    Current Behavior

    Invalid date

    Possible Solution

    Parse all the dates all the time, and add tests to catch dates not working in the future

    Steps to Reproduce (for bugs)

    1. Set minDate to '2016-12-24T16:16:22.585Z'

    Your Environment

    • Version used: 2.0.5
    • Browser Name and version: Chrome
    • Operating System and version (desktop or mobile): OS X
    • Link to your project:
    opened by rwwagner90 20
  • Calendar not displaying on mobile devices

    Calendar not displaying on mobile devices

    Hello,

    I recently downloaded and installed flatpickr, and it's working beautifully on all of my laptop browsers. However, it does not appear to be working on either my iPhone 6 with Chrome or my Windows phone with IE-mobile. On those devices, the calendar does not appear at all when I focus on the input fields. Instead, when I focus on the input fields, my phones' on-screen keyboards pop-up, expecting direct text input, even when I set clickOpens: true and allowInput: false. Do I have something configured wrong? Please advise. Thank you!

    opened by DCDiaz 18
  • Display issue on Bootstrap 3 modal

    Display issue on Bootstrap 3 modal

    Hi, when I update flatpickr to the latest version, the picker cannot be toggled in modal dialogs, nothing happens if I click on the input field. It was working fine before the last changes were made.

    bug 
    opened by janiskelemen 18
  • Selecting Multiple Times for the same day

    Selecting Multiple Times for the same day

    I have a app where users should be able to select multiple times for a day , with the current Datepicker we can only select one time for a day .

    And how can i set the dates in code?

    Is there a way i can allow users to pick multiple times for the same day ?

    Reproduction Link

    https://jsfiddle.net/aj6k3f1v/

    Your Environment

    • flatpickr version used:
    • Browser name and version:
    • OS and version:
    opened by ven007 17
  • Keyboard support

    Keyboard support

    Expected Behavior

    Input focus, TabIndex 1 [Tab] Input focus, TabIndex 2 [Tab] Input focus, TabIndex 3 {Opens our flatpickr plugin} [Click] Date, closes plugin OR [Enter] Selects date, closes plugin [Tab] Input focus, TabIndex 4

    Current Behavior

    Input focus, TabIndex 1 [Tab] Input focus, TabIndex 2 [Tab] Input focus, TabIndex 3 {Opens our flatpickr plugin} [Tab] flatpickr first day of currently selected month is selected [Tab] flatpickr second day of currently selected month is selected [...] [Tab] flatpickr last day of currently selected month is selected [Tab] Does nothing more

    Alternate : Input focus, TabIndex 1 [Tab] Input focus, TabIndex 2 [Tab] Input focus, TabIndex 3 {Opens our flatpickr plugin} [Click] Date, closes plugin [Tab] Resets TabIndex to first Input (TabIndex 1)

    Steps to Reproduce (for bugs)

    see jsFiddle I've fumbled the "natural" TabIndex order to show more easily expectations VS current behavior.

    Additional Questions

    Is this working as intended? Is there a way to set this up in an alternate way, with an option? Optional behavior that could be added, on Tab, selects current date if nothing is selected and moves on to the next input.

    Tested with both the Date and Time picker variants.

    First time reporting an issue, thanks for the support and the great plugin otherwise :+1:

    opened by cyrilmesvayn 17
  • Demo not working at all on iOS (or iPad) as if mere textbox

    Demo not working at all on iOS (or iPad) as if mere textbox

    Expected Behavior

    Calendar appears when input is tapped (i.e. focused).

    Current Behavior

    Calendar does not show up at all. The input works as if it were a mere <input type="text" />

    Possible Solution

    No idea...

    Steps to Reproduce (for bugs)

    Open the demo and tap any input.

    Context

    Official demo only, maybe.

    Your Environment

    • Version used: Official Demo
    • Browser Name and version: Chrome 55.0.2883.79, Safari 601.1
    • Operating System and version (desktop or mobile): iOS 9.3.5 (iPad Air)
    • Link to your project: None
    documentation 
    opened by naotokono 17
  • confirmDatePlugins using with angular5

    confirmDatePlugins using with angular5

    when I follow the example in plugins page of documentation,tslint told me error TS2350: Only a void function can be called with the 'new' keyword. how can i resolve it.

    private opt = { confirmIcon: '', confirmText: 'OK ', showAlways: true, theme: 'light' } public config = { wrap: true, enableTime: true, locale: Mandarin, dateFormat: 'Y-m-d H:i', altInput: false, time_24hr: true, minDate: new Date(), plugins: [new confirmDatePlugin(this.opt)]

    Your Environment

    • flatpickr version used: latest
    • Browser name and version: chrome latest
    • OS and version: windows
    opened by Picktarget 16
  • parseDate and formatDate are not exposed in V3 when using require

    parseDate and formatDate are not exposed in V3 when using require

    In the documentation it says that parseDate and formatDate are exposed, but since v3 Flackpickr is initialised through a helper function, and therefor these methods are not reachable when using var flatpickr = require('flatpickr').

    opened by bram-l 16
  • Range mode bug - closing the picker with a partial range selected does not call callbacks

    Range mode bug - closing the picker with a partial range selected does not call callbacks

    Issue

    JS Fiddle Repro

    When using range mode flatpickr requires that two dates are selected (the same date can be selected twice). If only one date selection is made (distinct from selecting the same day twice) and the picker is closed, flatpickr will clear the input's value without calling the onChange or onValueUpdate callbacks.

    In the example below (recorded from the JS Fiddle example above) I would expect that onChange and onValueUpdate would be called when the first date is selected and when the picker is closed.

    flatpickr_master_-JSFiddle-Code_Playground-_21_December_2022__1__AdobeExpress

    onValueUpdate

    From the docs:

    onValueUpdate# onValueUpdate gets triggered when the input value is updated with a new date string

    Because the input value is changed in the above situation onValueUpdate should be called.

    onChange

    onChange# onChange gets triggered when the user selects a date, or changes the time on a selected date.

    My view is that onChange should also be called in this situation.

    An argument against this is if we interpret "the user selects a date" as "the user selects a [valid] date __[for the current mode__]" then user hasn't selected a valid date in the above example and so onChange should not be called.

    I don't agree with this interpretation as currently onChange is called when the first date is selected even though this wouldn't be considered a 'valid date'.

    Your Environment

    • flatpickr version used: 4.6.13
    • Browser name and version:
      • Chrome 108.0.5359.98 (Official Build) (arm64),
      • Firefox 108.0.1 (64-bit), and
      • Edge 108.0.1462.54 (Official build) (arm64)
    • OS and version: macOS Ventura 13.01
    opened by frances-guest 0
  • Disable dates with data-attribute not working

    Disable dates with data-attribute not working

    Hello guys,

    can someone help me?

    <input data-datepicker="true" data-disable="2022-12-25" />

    JS Error "Invalid date". Any ideas?

    opened by wolfgang007 0
  • When cancelling a select, a re-activation defaults to showing the previous value

    When cancelling a select, a re-activation defaults to showing the previous value

    Seen on the examples page:

    • Activate the picker
    • Navigate to another month
    • Cancel
    • Re-activate

    My expectation is that the re-activated picker would show the selected date, NOT the month that I navigated to, then cancelled.

    flatpickr

    https://www.loom.com/share/2a28bb3411c2408c8b6d32fbc2649972

    Your Environment

    • flatpickr version used: v4 (via website)
    • Browser name and version: Chrome 107
    • OS and version: MacOs Monterey
    opened by oodavid 0
  • Bump qs from 6.5.2 to 6.5.3

    Bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v4.6.13)
  • v4.6.13(Apr 14, 2022)

    What's Changed

    • Fix change events not firing from the month select plugin
    • Fix week numbers being calculated incorrectly in some cases
    • Fix erroneous change events firing in edge cases (#2668 )
    • Run Prettier check in the CI to reject unformatted code by @mshibuya in https://github.com/flatpickr/flatpickr/pull/2663
    • translated more strings into albanian by @dianfishekqi in https://github.com/flatpickr/flatpickr/pull/2674
    • fixes #2669 monthSelectPlugin doesnt highlight correct month, when data is loaded by @koesper in https://github.com/flatpickr/flatpickr/pull/2676

    New Contributors

    • @dianfishekqi made their first contribution in https://github.com/flatpickr/flatpickr/pull/2674
    • @koesper made their first contribution in https://github.com/flatpickr/flatpickr/pull/2676

    Full Changelog: https://github.com/flatpickr/flatpickr/compare/v4.6.11...v4.6.13

    Source code(tar.gz)
    Source code(zip)
  • v4.6.11(Mar 12, 2022)

    There was a bug with time selection since so much stuff got merged in. New tests have been added to prevent this from happening again.

    What's Changed

    • Fix #2419 breaking with altInput and altFormat Enabled by @mshibuya in https://github.com/flatpickr/flatpickr/pull/2662
    • Bug fix: error thrown and calendar UI broken by invalid input value when allowInput is true and allowInvalidPreload is true by @barszczmm in https://github.com/flatpickr/flatpickr/pull/2650

    New Contributors

    • @barszczmm made their first contribution in https://github.com/flatpickr/flatpickr/pull/2650

    Full Changelog: https://github.com/flatpickr/flatpickr/compare/v4.6.10...v4.6.11

    Source code(tar.gz)
    Source code(zip)
  • v4.6.10(Mar 6, 2022)

    What's Changed

    • Support Z & GMT custom parsing by @bcfox in https://github.com/flatpickr/flatpickr/pull/2369
    • 🌐 [ar] Translate missing phrases. by @mohamedsabil83 in https://github.com/flatpickr/flatpickr/pull/2370
    • fix: restrict onKeyDown listener to Flatpickr only fixes #1444, #1387 by @ghiscoding in https://github.com/flatpickr/flatpickr/pull/2329
    • 🌐[ko] Add missing am/pm translation by @darron1217 in https://github.com/flatpickr/flatpickr/pull/2379
    • Add missing horizontal position strings to position option type by @danielpierre in https://github.com/flatpickr/flatpickr/pull/2400
    • Support reversed ranges for minTime and maxTime by @MiroslavCsonka in https://github.com/flatpickr/flatpickr/pull/2482
    • Fix incorrectly migrated package-lock.json by @andersk in https://github.com/flatpickr/flatpickr/pull/2467
    • Compile all ES6+ syntax to ES5 by @andersk in https://github.com/flatpickr/flatpickr/pull/2469
    • [fix] apply positionElement to instance._positionElement when fp.set by @fifzteen in https://github.com/flatpickr/flatpickr/pull/2466
    • Fix rangePlugin selection problems by @SquareBeard in https://github.com/flatpickr/flatpickr/pull/1795
    • Fix maxTime bound bug by @MiroslavCsonka in https://github.com/flatpickr/flatpickr/pull/2483
    • Fix parseDate on relative inputs by @juliapath in https://github.com/flatpickr/flatpickr/pull/2475
    • Add range separator for Swedish locale by @mlonn in https://github.com/flatpickr/flatpickr/pull/2434
    • Update sv.ts by @davemccrea in https://github.com/flatpickr/flatpickr/pull/2449
    • feat: add norwegian nynorsk by @tw15egan in https://github.com/flatpickr/flatpickr/pull/2423
    • Update fi.ts by @davemccrea in https://github.com/flatpickr/flatpickr/pull/2450
    • Eliminate memory leak caused by event listener accumulation by @jefrailey in https://github.com/flatpickr/flatpickr/pull/2596
    • Adjusts month abbreviation and adds aria-labels for the Greek translation (i10n) by @delight in https://github.com/flatpickr/flatpickr/pull/2555
    • Keyboard doesn't work inside Shadow Dom by @mwoess in https://github.com/flatpickr/flatpickr/pull/2519
    • Check exsitance of years and month in scrollPlugin by @mojtaba-khallash in https://github.com/flatpickr/flatpickr/pull/2571
    • Create ar-dz.ts locales by @anugrahsoft in https://github.com/flatpickr/flatpickr/pull/2556
    • fix: onClose callback was returning wrong selected dates if user changed input before close. by @DimitrisRK in https://github.com/flatpickr/flatpickr/pull/2541
    • Remove repeating 'onChange' trigger by @quis0 in https://github.com/flatpickr/flatpickr/pull/2506
    • Append to container and children no longer classed as calendar elements by @cmubo in https://github.com/flatpickr/flatpickr/pull/2500
    • Updated week day for Sunday in ms.ts by @izwanakhirruddin in https://github.com/flatpickr/flatpickr/pull/2496
    • Add range separator to Catalan by @toniavanza in https://github.com/flatpickr/flatpickr/pull/2495
    • Fix for calendar position on Safari by @octaviofernands in https://github.com/flatpickr/flatpickr/pull/2391
    • chore: replace CircleCI status badge with GitHub Actions status by @ghiscoding in https://github.com/flatpickr/flatpickr/pull/2384
    • monthSelect plugin: Support "range" mode by @rlue in https://github.com/flatpickr/flatpickr/pull/2297
    • fix: GitHub Actions badge fix invalid url typo by @ghiscoding in https://github.com/flatpickr/flatpickr/pull/2597
    • add Armenian locale by @vakopian in https://github.com/flatpickr/flatpickr/pull/2604
    • Fixes confirmDate focus accessibility by @gustavoaz7 in https://github.com/flatpickr/flatpickr/pull/2633
    • Add 'time_24hr: true' to Austrian locale by @berndy2001 in https://github.com/flatpickr/flatpickr/pull/2612
    • Prevent text selection on prev/next month buttons by @metonym in https://github.com/flatpickr/flatpickr/pull/2603
    • Fix issues with parsing localized date/time by @mshibuya in https://github.com/flatpickr/flatpickr/pull/2600
    • add kurdish (sorani) language by @swara-mohammed in https://github.com/flatpickr/flatpickr/pull/2620
    • Fix #2541 breaking with altInput enabled by @mshibuya in https://github.com/flatpickr/flatpickr/pull/2601
    • fix: handling document click after manual update by @Sayan751 in https://github.com/flatpickr/flatpickr/pull/2419

    New Contributors

    • @bcfox made their first contribution in https://github.com/flatpickr/flatpickr/pull/2369
    • @mohamedsabil83 made their first contribution in https://github.com/flatpickr/flatpickr/pull/2370
    • @darron1217 made their first contribution in https://github.com/flatpickr/flatpickr/pull/2379
    • @danielpierre made their first contribution in https://github.com/flatpickr/flatpickr/pull/2400
    • @MiroslavCsonka made their first contribution in https://github.com/flatpickr/flatpickr/pull/2482
    • @andersk made their first contribution in https://github.com/flatpickr/flatpickr/pull/2467
    • @fifzteen made their first contribution in https://github.com/flatpickr/flatpickr/pull/2466
    • @juliapath made their first contribution in https://github.com/flatpickr/flatpickr/pull/2475
    • @mlonn made their first contribution in https://github.com/flatpickr/flatpickr/pull/2434
    • @davemccrea made their first contribution in https://github.com/flatpickr/flatpickr/pull/2449
    • @tw15egan made their first contribution in https://github.com/flatpickr/flatpickr/pull/2423
    • @jefrailey made their first contribution in https://github.com/flatpickr/flatpickr/pull/2596
    • @delight made their first contribution in https://github.com/flatpickr/flatpickr/pull/2555
    • @mwoess made their first contribution in https://github.com/flatpickr/flatpickr/pull/2519
    • @mojtaba-khallash made their first contribution in https://github.com/flatpickr/flatpickr/pull/2571
    • @anugrahsoft made their first contribution in https://github.com/flatpickr/flatpickr/pull/2556
    • @DimitrisRK made their first contribution in https://github.com/flatpickr/flatpickr/pull/2541
    • @quis0 made their first contribution in https://github.com/flatpickr/flatpickr/pull/2506
    • @cmubo made their first contribution in https://github.com/flatpickr/flatpickr/pull/2500
    • @izwanakhirruddin made their first contribution in https://github.com/flatpickr/flatpickr/pull/2496
    • @toniavanza made their first contribution in https://github.com/flatpickr/flatpickr/pull/2495
    • @octaviofernands made their first contribution in https://github.com/flatpickr/flatpickr/pull/2391
    • @vakopian made their first contribution in https://github.com/flatpickr/flatpickr/pull/2604
    • @gustavoaz7 made their first contribution in https://github.com/flatpickr/flatpickr/pull/2633
    • @berndy2001 made their first contribution in https://github.com/flatpickr/flatpickr/pull/2612
    • @metonym made their first contribution in https://github.com/flatpickr/flatpickr/pull/2603
    • @mshibuya made their first contribution in https://github.com/flatpickr/flatpickr/pull/2600
    • @swara-mohammed made their first contribution in https://github.com/flatpickr/flatpickr/pull/2620
    • @Sayan751 made their first contribution in https://github.com/flatpickr/flatpickr/pull/2419

    Full Changelog: https://github.com/flatpickr/flatpickr/compare/v4.6.9...v4.6.10

    Source code(tar.gz)
    Source code(zip)
  • v4.6.9(Dec 25, 2020)

  • v4.6.3(Sep 26, 2019)

    This release fixes: #1841 monthSelectPlugin and maxDate or minDate #1805 Right most positioning incorrect #1754 Timepicker hours or minutes not automatically updating #1887 Using altInput breaks keyboard input for date selection #1938 Only update weekdayContainer when initialized

    Added: #1911 min/max time will support second resolution #1913 feat(locale key): export locale key type

    Source code(tar.gz)
    Source code(zip)
  • v4.6.2(Jul 15, 2019)

    Changlog

    (this is a patch version)

    • #1826 - Added monthSelectorType option
    • #1852 - Add Georgian (ka) locale
    • #1854 - Month dropdown improvements
    • #1856 - Fixed shorthandCurrentMonth not working for month dropdown
    • #1846 - Setting Monday as firstDayOfWeek for Japanese
    • Fixed Month Select Plugin not working in Internet Explorer
    • #1825 - Added aria labels to hour and minute inputs
    Source code(tar.gz)
    Source code(zip)
  • v4.6.1(Jun 5, 2019)

  • v4.6.0(Jun 3, 2019)

    • Lots and lots of minor bugfixes/improvements all around
    • A new select-based month picker
      • A more featured month selector (#269) to be added in the next release
    Source code(tar.gz)
    Source code(zip)
  • v4.5.7(Mar 6, 2019)

  • v4.5.6(Mar 4, 2019)

  • v4.5.5(Mar 4, 2019)

    Changelog

    • Handle enter keypress on time inputs
    • Prevent keyboard focus trapping
    • set() - remove jumpToDate() | #1651
    • Range mode - keep position after date selection | #1671
    • Use input type number in supported browsers | #1629, #1672
    • Populate time if unset in inline mode | #1659
    • Fix altInput focus | #1661
    • build(emitDeclarations.sh): correct copy command for macOS
    Source code(tar.gz)
    Source code(zip)
  • v4.5.4(Feb 23, 2019)

  • v4.5.3(Feb 23, 2019)

    After a bit of a hiatus, we're out with v4.5.3. This release contains numerous bugfixes, mostly addressing edge cases.

    Brief overview of changes:

    • Merge pull request #1644 from soylent/bugfix/clear-resets-current-month-and-year
      • Reset currentMonth and currentYear when clear() is called
    • Merge pull request #1627 from WhispRnD/hebrew-translation
      • Hebrew translations - Fixed saturday to correct shorthand. - Added translation to "to".
    • Merge pull request #1530 from jcsmorais/plugins-accessibility-breakage
      • Plugins accessibility breakage (fixes #1529)
    • Merge pull request #1580 from zackschuster/master
      • Remove null check from flatpickr contructor fn
    • Fix highlight week on open calendar when date was externaly changed.
    • Merge pull request #1595 from stespot/stespot-patch-1186
      • Fixes IE11 bug in close event
    • Merge pull request #1589 from andrewlouie/updateTime-on-close
    • Merge pull request #1590 from ecsv/xhtml
    • Merge pull request #1591 from ecsv/bashisms
    • Fix XHTML compatibility of weekday list
    • add updateTime on close
    • Merge pull request #1573 from janb87/master
      • Fixed error when the datepicker is destroyed before it is initialized
    • Merge pull request #1568 from Lundalogik/fix-event-target-in-shadow-dom
    • Merge pull request #1570 from andrewlouie/master
    • Support for Shadow DOM
    • Merge pull request #1542 from antony/patch-1
    • Merge pull request #1556 from seymuromarov/master
    • Merge pull request #1555 from beyonk-adventures/master
    • add Azerbaijan locale
    • Add Svelte component
    • Merge pull request #1531 from tmbeihl/master
    • Merge pull request #1506 from chhaymenghong/#1442
    • Fix non-static calendar closing in bootstrap v4 modals #1241
    • Fix Latvian translation (#1517)
    • Adding Icelandic (#1511)
    • update hungarian language (#1510)
    • fix: focus datepicker when self.open() is called
    • Merge pull request #1 from flatpickr/master
    • l10n: add faroese locale (fo) (#1490)
    • Fix cursor problems (#1491)
    • Fix for #1412: Incorrect Month Label when Toggling Mode from "multiple" to "range" (and "showMonths" is in the calendar's config)
    Source code(tar.gz)
    Source code(zip)
  • v4.5.2(Sep 2, 2018)

    Changelog

    • set() - handle common hook update misuse #1484
    • Range mode - format same-day range as a single date #1478
    • prevent error on destroy if wrapper has no parent node (#1461)
    • Avoid use of child nodes for browser support (#1465)
    • Update value on set (#1474)
    • Add Khmer Locale (#1477)
    • minMaxTimePlugin - fix missing parts of time (#1486)
    • Fix wrong path for types (#1455)
    • Handle focus when tabbing out of flatpickr (#1441)
    • Prevent error due to onChange firing after destroy() is called (#1434)
    • make sure active element is not null (#1433)
    • Fix data-toggle button on mobile for real... (#1427)
    • Use local tsc and support osx cp command (#1430)
    Source code(tar.gz)
    Source code(zip)
  • v4.5.1(Jul 1, 2018)

    • destroy() - fix static mode destruction | #1399
    • remove scrollTitle for now | #1403
    • open() - default to_positionElement | #1402
    • updateTime - tweak change evt firing logic | #1388
    • parseDate() - fix locale edge-case | #1395
    • Range mode - better UX dealing with disabled dates | #1404
    • selectDate() - do not reset time | #1393
    • non-input + no defaultDate | #1397
    • Swap placeholder length check with not-null & empty check. #1378
    Source code(tar.gz)
    Source code(zip)
  • v4.5.0(May 17, 2018)

    Changelog

    • Time picker - better, more intuitive behavior | #837, #1317
    • Fixed tabbing and shift-tabbing within time elements
    • Improved highlighting of focused time elements
    • setDate() - clear on empty array | #1275
    • Tweaked dark theme
    Source code(tar.gz)
    Source code(zip)
  • v4.4.7(May 16, 2018)

    Changelog

    • Expose _positionCalendar | #1335
    • Fix theming of month arrows | #1375
    • Time input - restore text cursor
    • Kz locale (#1373)
    • clear() - take minDate's date into account | #1370
    • IE11 - fix altInput/input placeholder bug | #1367
    • rangePlugin - fix date change detection logic
    • Remove requestAnimationFrame polyfill
    • rangePlugin - fix date change detection
    • rangePlugin - fix calendar not opening if other input is already focused
    • Fix French locale (#1360)
    Source code(tar.gz)
    Source code(zip)
  • v4.4.5(May 4, 2018)

    Changelog

    • onYearInput - fix bug in IE11 | #1350
    • parseDateRules() - avoid mutation
    • Time picker - fix focus trap | #1357
    • Added monthSelect plugin. #745
    • _handlers - store options for removeEventListener | #1355
    • Fix data-toggle button on mobile (#1285)
    • Makes it possible to horizontally center the calendar container towards its input component by config option position: "below center" (#1320)
    • Update fa.ts (#1354)
    • Update fa.ts (#1353)
    • Explicitly set width only under certain conditions | #1349
    • Range Plugin - don't force allowInput | #1339
    • keydown - rm stopPropogation resolves #1338
    • Time mode - fix allowInput + allow shortcut "time" | #1340 resolves #1340
    • Remove unnecessary typecasts
    • Range mode - fix selected date fill overflow in multiMonth mode
    • Range mode - fix obstacle detection resolves #1346
    • Always preventDefault() event in onMonthNavClick (#1334)
    • Fixes: forced reflow (#1337)
    • Update spanish language (#1328)
    • Fix init on mobile with enabled confirmDatePlugin (#1327)
    • feat(translations): add missing polish translations (#1321)
    Source code(tar.gz)
    Source code(zip)
  • v4.4.4(Apr 8, 2018)

    • Fix calendar width calculation logic, weeknumbers+multimonth | #1300
    • Rework keyboard nav | #1303
    • Default error handler - ensure console is present (#1297)
    • Added aria-current date (#1309)
    Source code(tar.gz)
    Source code(zip)
  • v4.4.2(Mar 26, 2018)

  • v4.4.0(Mar 26, 2018)

    Changelog

    • Multiple months (#747)
      • docs coming soon.
      • showMonths: 2 to show two adjacent months.
    • Time picker - improved UX
      • Auto-filled default value
      • Auto-highlight the hour element
    • Ability to customize the 'today' date (#1284)
    • Improved keyboard navigation
    • Added locale for Austria (#1287)
    • fix(styles): Add disabled class to month arrows leading to disabled date ranges (@see #681) (#1264)
    • Added belarusian locale, updated russian locale (#1281)
    • added missing texts in czech language (#1273)
    • Add aria-label to the year element #1269
    • Fix weekday rendering + cal width calculation
    • IE - backspace del - preventDefault() #1258
    • onMonthNavClick use classList in condition (#1260)
    • Cleanup confirmDatePlugin resolves #1259
    • Time limits - account for seconds resolves #1257
    • fix(typings): use correct default export (#1255)
    Source code(tar.gz)
    Source code(zip)
  • v4.3.2(Feb 9, 2018)

    flatpickr's internals have been cleaned up. Unused and unnecessary features have gotten removed, and the core is now lighter. Removed stuff may be revived later via plugins.

    • Remove scrollwheel functionality
    • Remove animated days
    • formatDate() now accepts optional third argument for locale | #1226
    • Fix header month/year being clipped in IE11 (#1235)
    • Fix calendar not closing in IE11 | #1233
    • Fix several rendering issues in IE11 and Edge (#1180)
    • Add Italian rangeSeparator (#1239)
    • altInput accessibility: use tabIndex from the original input element (#1246)
    • Dates - disable sorting unless in range mode | #1243
    Source code(tar.gz)
    Source code(zip)
  • v4.2.4(Jan 25, 2018)

    Changelog

    • Copy required attribute to mobileInput (#1032)
    • createDateParser - persistent references | resolves #1196
    • Posibility to change date format in WeekPicker plugin (#1215)
    • ConfirmDate - fix error on mobile | resolves #1214
    • npm package - omit tsconfig.json | resolves #1210
    Source code(tar.gz)
    Source code(zip)
  • v4.2.3(Jan 8, 2018)

Owner
flatpickr
Lightweight, powerful, extensible, accessible datetime picker
flatpickr
A refreshing JavaScript Datepicker β€” lightweight, no dependencies, modular CSS

Pikaday A refreshing JavaScript Datepicker Lightweight (less than 5kb minified and gzipped) No dependencies (but plays well with Moment.js) Modular CS

null 7.9k Jan 4, 2023
A lightweight javascript timezone library

Isn't it weird how we can do math in our head, but not date math? how many days until the end of the year? what time was it, 11 hours ago? is it lunch

spencer kelly 3.7k Dec 29, 2022
Lightweight and simple JS date formatting and parsing

fecha Lightweight date formatting and parsing (~2KB). Meant to replace parsing and formatting functionality of moment.js. NPM npm install fecha --save

Taylor Hakes 2k Jan 5, 2023
A lightweight, locale aware formatter for strings containing unicode date tokens.

Date Token Format A lightweight (~2kB), locale aware formatter for strings containing unicode date tokens. Usage Install the package using: yarn add d

Donovan Hutchinson 1 Dec 24, 2021
Parse, validate, manipulate, and display dates in javascript.

Moment.js A JavaScript date library for parsing, validating, manipulating, and formatting dates. Project Status Moment.js is a legacy project, now in

Moment.js 47.1k Jan 2, 2023
⏳ Modern JavaScript date utility library βŒ›οΈ

date-fns provides the most comprehensive, yet simple and consistent toolset for manipulating JavaScript dates in a browser & Node.js. ?? Documentation

date-fns 30.6k Dec 29, 2022
πŸžπŸ“…A JavaScript calendar that has everything you need.

A JavaScript schedule calendar that is full featured. Now your service just got the customizable calendar. ?? Table of Contents Collect statistics on

NHN 10.4k Jan 3, 2023
πŸ•‘ js-joda is an immutable date and time library for JavaScript.

js-joda is an immutable date and time library for JavaScript. It provides a simple, domain-driven and clean API based on the ISO8601 calendar.

null 1.5k Dec 27, 2022
DEPRECATED: Timezone-enabled JavaScript Date object. Uses Olson zoneinfo files for timezone data.

TimezoneJS.Date A timezone-enabled, drop-in replacement for the stock JavaScript Date. The timezoneJS.Date object is API-compatible with JS Date, with

Matthew Eernisse 830 Nov 20, 2022
TheDatepicker - Pure JavaScript Datepicker πŸ“…

Pure JavaScript Datepicker by Slevomat.cz.

The Datepicker 27 Dec 16, 2022
Vanillajs-datepicker - A vanilla JavaScript remake of bootstrap-datepicker for Bulma and other CSS frameworks

Vanilla JS Datepicker A vanilla JavaScript remake of bootstrap-datepicker for Bulma and other CSS frameworks This package is written from scratch as E

null 489 Dec 30, 2022
A tiny and fast zero-dependency date-picker built with vanilla Javascript and CSS.

A tiny zero-dependency and framework-agnostic date picker that is incredibly easy to use! Compatible with any web UI framework, vanilla JS projects, and even HTML-only projects!

Nezar 1 Jan 22, 2021
lightweight, powerful javascript datetimepicker with no dependencies

flatpickr - javascript datetime picker Motivation Almost every large SPA or project involves date and time input. Browser's native implementations of

flatpickr 15.4k Jan 9, 2023
A Drop-in Jalali Replacement for filament DateTimePicker

Filament Jalali Date Time Picker Field This package is a Drop-in replacement for DatePicker and DateTimePicker field type you just need to replace tho

AriaieBOY 8 Dec 3, 2022
1KB lightweight, fast & powerful JavaScript templating engine with zero dependencies. Compatible with server-side environments like node.js, module loaders like RequireJS and all web browsers.

JavaScript Templates Contents Demo Description Usage Client-side Server-side Requirements API tmpl() function Templates cache Output encoding Local he

Sebastian Tschan 1.7k Jan 3, 2023
A refreshing JavaScript Datepicker β€” lightweight, no dependencies, modular CSS

Pikaday A refreshing JavaScript Datepicker Lightweight (less than 5kb minified and gzipped) No dependencies (but plays well with Moment.js) Modular CS

null 7.9k Jan 4, 2023
A refreshing JavaScript Datepicker β€” lightweight, no dependencies, modular CSS

Pikaday A refreshing JavaScript Datepicker Lightweight (less than 5kb minified and gzipped) No dependencies (but plays well with Moment.js) Modular CS

null 7.9k Jan 4, 2023
noUiSlider is a lightweight JavaScript range slider library with full multi-touch support. It fits wonderfully in responsive designs and has no dependencies.

noUiSlider noUiSlider is a lightweight JavaScript range slider. No dependencies All modern browsers and IE > 9 are supported Fully responsive Multi-to

LΓ©on Gersen 5.4k Dec 28, 2022
Coloris - A lightweight and elegant JavaScript color picker. Written in vanilla ES6, no dependencies. Accessible.

Coloris A lightweight and elegant JavaScript color picker written in vanilla ES6. Convert any text input field into a color field. View demo Features

Momo Bassit 126 Dec 27, 2022
πŸš€ Scroll Follow Tab is a lightweight javascript library without jQuery, no dependencies.

Scroll Follow Tab is a lightweight javascript library without jQuery, no dependencies. It is used to make scrollspy effect for your menu, table of contents, etc. Only 21.7Kb.

Hieu Truong 11 Jun 20, 2022