A pretty nice datetime picker.
JavaScript CoffeeScript CSS HTML
Failed to load latest commit information.
dist Remove start of another feature Feb 23, 2016
src Remove start of another feature Feb 23, 2016
.gitignore Essentially working, except initial data loading Aug 21, 2015
bower.json Install instructions and whatnot. May 22, 2016
contributing.md Ping! Bower + Mo' May 22, 2016
gruntfile.coffee A bunch of styles and stuff. Aug 22, 2015
license.md Ping! Bower + Mo' May 22, 2016
moment.js I wrote a bunch of code. Aug 21, 2015
readme.md Install instructions and whatnot. May 22, 2016



A pretty nice datetime picker. Hopefully pretty accessible, definitely pretty usable. No DOM library required, just add Moment.js and you're good to go.

Minimal styling required, lots of styling possible.

Paul Straw


npm install sundial-picker or bower install sundial-picker

<input type="text" id="dingus">
var someDingus = document.getElementById('dingus');
new Sundial(someDingus, {options: goHere});

Options / Defaults

defaults =
  enableSidebar: true # Render the "current date" sidebar
  enableTimePicker: true # Allow picking time as well as date
  allowEmptyDate: true # Allow date to be cleared
  classPrefix: 'sundial' # Class prefix, for theming and stuff
  wrapperTagName: 'div' # Change the input wrapper tag
  defaultDisplayMonth: moment().startOf('month') # A `moment` specifying the default month to view when the picker is first opened. Overridden by an existing value in the passed input
  weekStart: 0 # First day of the week (0 is Sunday)
  timePickerMinuteStep: 1 # Limit which minutes that can be selected. Sixty (60) should generally be divisible by this number
  timePickerSeparator: ':' # Symbol between the hour and minute selectors
  timePickerDescription: 'Format: 24hr' # Descriptive text below time picker
  inputFormat: moment.defaultFormat # Format for input (what's actually sent to the server, defaults to ISO 8601 [YYYY-MM-DDTHH:mm:ssZ])
  maskFormat: 'dddd MMMM Do, YYYY h:mmA' # Display format for input mask
  dayOfWeekFormat: 'dd' # Display format for calendar header
  sidebarYearFormat: 'YYYY' # Display format for sidebar year
  sidebarDateFormat: 'ddd, MMM D' # Display format for sidebar date
  sidebarTimeFormat: 'h:mmA' # Display format for sidebar time
  dayButtonDateFormat: 'YYYY-MM-DD' # Internal-ish. Sets the data attribute format on calendar day buttons
  verticalPopoverOffset: 0 # Added to the popover's vertical position during placement
  horizontalPopoverOffset: 0 # Added to the popover's horizontal position during placement

Special Thanks

A lot of the calendar rendering code is adapted from the venerable Pikaday. It's well worth checking out, if Sundial isn't for you for whatever reason!

Meta Stuff

Sundial was created by Paul Straw. It's MIT-licensed (see the license file for more info). Any contribution is absolutely welcome, but please review the contribution guidelines before getting started.