Hacker News new | comments | ask | show | jobs | submit login
Show HN: A date range picker for Twitter Bootstrap (dangrossman.info)
363 points by dangrossman on Aug 20, 2012 | hide | past | web | favorite | 80 comments

With our new Bootstrap guidelines, we're trying to encourage activity in the upper-left, lower-left and lower right quadrants, and limit certain use cases that occupy the upper-right quadrant.

Nearly eighteen months ago, we gave developers guidance that they should not build form elements that mimic or reproduce the mainstream Twitter Bootstrap experience. And to reiterate, that guidance continues to apply today.

I didn't find any mention of this on the Bootstrap github project. And I feel I must ask: why? Bootstrap includes dropdowns, how is this different?

Parent is referencing the Twitter blog post about changes in Version 1.1 of the API which stirred some controversy because of the new rules and limitations for 3rd party developers. See the link below:


I don't know of any similar limitations for Bootstrap, so you can probably safely assume that wickedchicken is kidding.

Most definitely a joke, though it took me a second to realize that myself.

It's a joke? I totally missed that! My perception for these things is rather obtuse, so thanks for pointing it out. I thought that perhaps the Twitter devs themselves had jumped the shark.

Oh damn got me too! I don't see a problem with enforcing design consistency rules however, probably why it flew over my head.

Open source != a company's core business.

Not that I think Twitter's recent announcements are smart; quite the contrary. However, a false comparison distracts from the real problem.

I also think your comment is funny.

Well played! I was halfway indignant before I got it.

I'll admit it, this one took me a long time and multiple reads to get the joke. well done.

This is great, but could use a small tweak: Once you select a start date, it should grey out the dates before the selection in both calendars. That will make it easier to pick an end date that's valid. And vice versa for the end date.

If you're looking for an alternative with this feature, I modified a datepicker a while ago to do just that:


> cs.txstate.edu

Yeah right, you expect me to believe that students ever go to class in San Marvelous?

Kidding, sort of. I didn't attend too often :|

Being from Wimberley, I can attest- it is rather difficult to get things done. I've still got a year or so left before I'm free. Glad to see our CS dept has some presence somewhere, eh?

Indeed! I begrudgingly moved to Austin a few years ago.

seems the demo doesn't work for me due to js errors. However, seems https://github.com/eternicode/bootstrap-datepicker is good for single datepicker.

Hmm, browser specs + errors? I have it running in production for about 400+ developers and no one has filed a bug, yet. Thanks for the heads up!

And it would automatically do what I was about to suggest - highlight the selected range.

In this same vein, I encountered a bug when I was picking a date after the default selected end date in Chrome 12.0.742.112. Essentially, I couldn't actually select the date. It wouldn't take.

The expected behavior is that I could not only select a date, but the "end date" calendar should jump to at least whatever month-year I selected my start date at if the selected start date comes after the selected end date. Even nicer if you tie the event to the month selection so that the end date calendar's minimum month-year is the furthest point the start date's month-year calendar has gone.

Slightly off-topic: why are you using/testing on a Chrome version that was released more than a year ago?

I would be more interested in "how". Chrome updates automatically. So how does he/she avoid auto update?


This has links on how to do this on a Mac as well.

Ofcourse, Linux is more easily controlled especially if you aren't running a package-manager installed version of Chrome.

> Chrome updates automatically. So how does he/she avoid auto update?

Kill the auto-update daemon, remove it, prevent it from re-installing itself (by creating an empty "GoogleSoftwareUpdate" directory with write bits unset in place of the removed one). Done.

I have the EXACT same problem and I came here to see how many more people were running into this wall ... the thing is: I'm using Chrome's latest version (21.0.1180.82) ... is this a bug ?

* Clicking on the calendar itself does not work for the first item, shouldn't it focus the field and open the picker?

* Can't [Esc] to close the picker

* Not sure why the "Apply" button is needed when the date is set regardless of its usage

* The ability to drag from one date to the next would be rather nice

* Not sure datejs is a good idea as a base, it's essentially dead (has been for 4 years) and the localizations are in a pretty sorry state

* The reflow/columnification when changing the width of the browser looks pretty bad

* When trying to select a FROM date after the TO date, the selection is just cancelled without any indication or hint that something is wrong. This is compounded by the calendars not showing the current selection range. Hipmunk does that part rather well (though not perfectly)

Would be nice if the dates in the selection range were highlighted, and unselectable dates (eg. later than the end date in left calendar, earlier than start date in right calendar.) were grayed out.

http://momentjs.com/ is a much better library than datejs. It's maintained, tested, smaller?, deals much better with internationalization/custom date formats. I'd recommend it to anyone looking for a JS date library.

Yeah. Only issue with it: reinvented yet another format language instead of using strftime's or UTS#35's (most annoying part: moment's format is confusingly close to UTS#35's)

I'd like to see someone do this and handle times and timezones. What a pain that is.


agree, another vote for a date + time picker

I've had a hell of a time finding a good date AND time picker that compliments Bootstrap well. The combined ones I've found are just a horrid experience.

I have an application that I have to choose dates/times when sections of classes are.

If you find anything be sure to post it. I've been hunting for a nice time/datetime picker also.

Seems odd to have a date range picker with two calendars. Most of the ones I've seen have you pick both dates on a single calendar.

That's a lot more work when the dates are not in the same month. My use case for building this was choosing ranges for reports.

I've seen this pattern a lot, particularly in websites for picking reservation dates (airlines, vacation homes, cars, etc...). It's very useful in that case, and I find that it's much easier for me to keep track of what I've entered that way.

This is really nice, particularly with the custom ranges - I'm tempted to implement something very similar to this in our admin interface.

I do wonder though why you don't allow for entry into the date boxes and agree that the unselectable dates should be greyed out :-)

It's just a matter of time; I could've spent a week on this adding features and perfecting UX, but then I'd have pushed back finishing Improvely another week. I hope to find some time to go back and add all the details I've missed as pointed out in various comments here.

Totally understood, by the way - what is it that makes it depend on Bootstrap, could it be easily decoupled?

Bootstrap provides a bunch of the styles that control the appearance of dropdown menus (for the container around the component) and tables (for the calendars), which this uses. You'd have to copy the relevant styles out of Bootstrap's CSS.

I was going to have to build something just like this next week, to add arbitrary date ranges to an existing dropdown with pre-defined ranges. Thanks for releasing this. It looks great.

Love it! Nice UX with the not-allowed cursor on the little FROM and TO boxes. It's amazing how painful date range selection is on so many websites.

Well, kind of. Wouldn't nicer UX be: let the user type the date if he or she wants to?

Or have that trigger the custom picker. Just putting up an X cursor is hostile to the user.

Doesn't fit in with the bootstrap code style. Your plugin has too many semicolons.

Wow! this is amazingly useful, thanks so much. Needless to say I'll be replacing my crappy date forms with this asap.

It's sad how more and more people ignore non-mouse-or-touch-oriented users in their UIs. What about damn old keyboard support? Even if I modify input, nothing changes in UI. I'm not even mentioning such things as being able to easily navigate through days and months using arrow keys...

Nice-looking UI -/-> Good UI

And even more:

Nice-looking UI -/-> Good UX

"This is a great looking timepicker. One thing that I would love to see added is better keyboard support: for instance when modifying input by keyboard it would be nice to see the UI update, it would also be nice to be able to navigate through days and months using arrow keys."

It doesn't hurt to be friendly, you know.

Sure. I was simply put off, because of all these appraisals and lack of sober evaluation. Mea culpa.

I have to do a ton of clicking to get to last year. It would be much faster to be able to type in arbitrary dates, too, and have the calendars update to reflect those new dates. And when I altered the date text in the editable field (the one you click to drop down the calendars), they did not honor my change; to be consistent, that field should also be readonly.

I really like the year navigation pick in this one:


Maybe it could just improve on it? they look the same ;)

Wow, that component's approach is a nice idea. That component ALSO handles keyboard changes to the date.

That's actually the same UI as the Windows 7 date/time picker :)

I don't know about him, but that's no coincidence here. I was staring at the Win7 taskbar calendar while figuring out how to generate calendars for arbitrary months/years, and how to show the overlap from previous/future months. Add the Bootstrap table and button styles, and you end up with what you see.

To add to this...


Same one? Seems to have a slick interface that does not require an apply button, does provide ranges and customizable range options, although it does not have easy keyboard input either.

There is also this one here that Addy Osmani and others put together. But this one appears to be a little bit lighter weight solution. http://addyosmani.github.com/jquery-ui-bootstrap/#rangeA

I was looking for such thing for last few hours :D Thanks for great job, I really appreciate. And one more thing - have you thought about pledgie? Because this is one of those plugins, that I would really love to donate + it saved me hours of work.

I really like this, another approach has been done here too: http://www.eyecon.ro/colorpicker-and-datepicker-for-twitter-...

Are there Bootstrap tutorials that also combine the minimal CSS knowledge required in order to use it? For instance, I have a vague understanding of the box model, and can hand-code very simple pages myself, but I find it unsatisfactory, as the nested divs and knowing what class to use when can drive me a bit nuts. So far the tutorials I've come across don't add much to the official documentation at all.

I'm hoping this lean book [1] will give me a nice, integrated walk through these issues.

[1] http://www.amazon.com/Twitter-Bootstrap/dp/6201519254/

This is incredibly useful - thanks so much.

Nice job, very clean UI.

Nice work. In the first example, I would put the From and To input boxes directly aligned with the corresponding calendars. Right now, with those inputs being aligned into a right column, they look like a totally different option

Looks nice, but I prefer hipmunk.com's date range selector. It doesn't require a start date picker and an end date picker. You select two dates and it knows the range.

My favorite date range picker http://burrow.dev.agriya.com/ (They didn't seem to use Bootstrap though)

Nice work. Is there any out of the box way to use this simply as a date picker (popping up one calendar rather than two)?

Looks great, I think I'm going to add it to the Bootstrap interface builder I'm working on. Super cool!

Other than the styles, I'm not so sure this is much better than the jQuery UI Datepicker.

It would be nice if you could add some tests to the project. QUnit would suffice.

Very nice! is the datejs project still as dead as the website makes it appear?


Datejs is huge. Seems to be a shame they made it a dependency.

I wonder if http://phpjs.org/functions/date:380 along with some of it's related methods could be of use.

great job! Finally, bootstrap really needs this. good job-

Fantastic. Thanks for sharing!

Terrific job, thanks.

Neat stuff here.

Oh my

You know what would be a really nice addition to this? Relative range options embedded directly in the picker, with labels like "this week", "next week", "this year", "last 30 days", etc.

Isn't that what's shown on the linked page under "Pre-defined Ranges & Callback Example?"

Scroll down a little -- that was the reason I created it.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact