`

基于twitter bootstrap的日期/时间选择控件

    博客分类:
  • html
 
阅读更多

Project : bootstrap-datetimepicker

 

Build Status

Homepage

Demo page

Project forked

This project is a fork of bootstrap-datepicker project.

Home

As 'bootstrap-datetimepicker' is restricted to the date scope (day, month, year), this project aims to support too the time picking (hour, minutes).

Screenshots

Decade year view

Datetimepicker decade year view

This view allows to select the day in the selected month.

Year view

Datetimepicker year view

This view allows to select the month in the selected year.

Month view

Datetimepicker month view

This view allows to select the year in a range of 10 years.

Day view

Datetimepicker day view

This view allows to select the hour in the selected day.

Hour view

Datetimepicker hour view

This view allows to select the preset of minutes in the selected hour. The range of 5 minutes (by default) has been selected to restrict buttons quantity to an acceptable value, but it can be overrided by the minuteStepproperty.

Day view - meridian

Datetimepicker day view meridian

Meridian is supported in both the day and hour views. To use it, just enable the showMeridian property.

Hour view - meridian

Datetimepicker hour view meridian

Example

Attached to a field with the format specified via options:

<input type="text" value="2012-05-15 21:05" id="datetimepicker">
$('#datetimepicker').datetimepicker({
    format: 'yyyy-mm-dd hh:ii'
});

Attached to a field with the format specified via markup:

<input type="text" value="2012-05-15 21:05" id="datetimepicker" data-date-format="yyyy-mm-dd hh:ii">
$('#datetimepicker').datetimepicker();

As component:

<div class="input-append date" id="datetimepicker" data-date="12-02-2012" data-date-format="dd-mm-yyyy">
    <input size="16" type="text" value="12-02-2012" readonly>
    <span class="add-on"><i class="icon-th"></i></span>
</div>
$('#datetimepicker').datetimepicker();

As inline datetimepicker:

<div id="datetimepicker"></div>
$('#datetimepicker').datetimepicker();

Using bootstrap-datetimepicker.js

Call the datetimepicker via javascript:

$('.datetimepicker').datetimepicker()

Dependencies

Requires bootstrap's dropdown component (dropdowns.less) for some styles, and bootstrap's sprites (sprites.less and associated images) for arrows.

A standalone .css file (including necessary dropdown styles and alternative, text-based arrows) can be generated by running build/build_standalone.less through the lessc compiler:

$ lessc build/build_standalone.less datetimepicker.css

Options

All options that take a "Date" can handle a Date object; a String formatted according to the given format; or a timedelta relative to today, eg '-1d', '+6m +1y', etc, where valid units are 'd' (day), 'w' (week), 'm' (month), and 'y' (year).

You can also specify an ISO-8601 valid datetime, despite of the given format :

  • yyyy-mm-dd
  • yyyy-mm-dd hh:ii
  • yyyy-mm-ddThh:ii
  • yyyy-mm-dd hh:ii:ss
  • yyyy-mm-ddThh:ii:ssZ

format

String. Default: 'mm/dd/yyyy'

The date format, combination of p, P, h, hh, i, ii, s, ss, d, dd, m, mm, M, MM, yy, yyyy.

  • p : meridian in lower case ('am' or 'pm') - according to locale file
  • P : meridian in upper case ('AM' or 'PM') - according to locale file
  • s : seconds without leading zeros
  • ss : seconds, 2 digits with leading zeros
  • i : minutes without leading zeros
  • ii : minutes, 2 digits with leading zeros
  • h : hour without leading zeros - 24-hour format
  • hh : hour, 2 digits with leading zeros - 24-hour format
  • H : hour without leading zeros - 12-hour format
  • HH : hour, 2 digits with leading zeros - 12-hour format
  • d : day of the month without leading zeros
  • dd : day of the month, 2 digits with leading zeros
  • m : numeric representation of month without leading zeros
  • mm : numeric representation of the month, 2 digits with leading zeros
  • M : short textual representation of a month, three letters
  • MM : full textual representation of a month, such as January or March
  • yy : two digit representation of a year
  • yyyy : full numeric representation of a year, 4 digits

weekStart

Integer. Default: 0

Day of the week start. 0 (Sunday) to 6 (Saturday)

startDate

Date. Default: Beginning of time

The earliest date that may be selected; all earlier dates will be disabled.

endDate

Date. Default: End of time

The latest date that may be selected; all later dates will be disabled.

daysOfWeekDisabled

String, Array. Default: '', []

Days of the week that should be disabled. Values are 0 (Sunday) to 6 (Saturday). Multiple values should be comma-separated. Example: disable weekends: '0,6' or [0,6].

autoclose

Boolean. Default: false

Whether or not to close the datetimepicker immediately when a date is selected.

startView

Number, String. Default: 2, 'month'

The view that the datetimepicker should show when it is opened. Accepts values of :

  • 0 or 'hour' for the hour view
  • 1 or 'day' for the day view
  • 2 or 'month' for month view (the default)
  • 3 or 'year' for the 12-month overview
  • 4 or 'decade' for the 10-year overview. Useful for date-of-birth datetimepickers.

minView

Number, String. Default: 0, 'hour'

The lowest view that the datetimepicker should show.

maxView

Number, String. Default: 4, 'decade'

The highest view that the datetimepicker should show.

todayBtn

Boolean, "linked". Default: false

If true or "linked", displays a "Today" button at the bottom of the datetimepicker to select the current date. If true, the "Today" button will only move the current date into view; if "linked", the current date will also be selected.

todayHighlight

Boolean. Default: false

If true, highlights the current date.

keyboardNavigation

Boolean. Default: true

Whether or not to allow date navigation by arrow keys.

language

String. Default: 'en'

The two-letter code of the language to use for month and day names. These will also be used as the input's value (and subsequently sent to the server in the case of form submissions). Currently ships with English ('en'), German ('de'), Brazilian ('br'), and Spanish ('es') translations, but others can be added (see I18N below). If an unknown language code is given, English will be used.

forceParse

Boolean. Default: true

Whether or not to force parsing of the input value when the picker is closed. That is, when an invalid date is left in the input field by the user, the picker will forcibly parse that value, and set the input's value to the new, valid date, conforming to the given format.

minuteStep

Number. Default: 5

The increment used to build the hour view. A button is created for each minuteStep minutes.

pickerReferer : deprecated

String. Default: 'default'

The referer element to place the picker for the component implementation. If you want to place the picker just under the input field, just specify input.

pickerPosition

String. Default: 'bottom-right' (supported values are: 'bottom-right', 'bottom-left', 'top-right', 'top-left')

This option allows to place the picker just under the input field for the component implementation instead of the default position which is at the bottom right of the button.

viewSelect

Number or String. Default: same as minView (supported values are: 'decade', 'year', 'month', 'day', 'hour')

With this option you can select the view from which the date will be selected. By default it's the last one, however you can choose the first one, so at each click the date will be updated.

showMeridian

Boolean. Default: false

This option will enable meridian views for day and hour views.

initialDate

Date or String. Default: new Date()

You can initialize the viewer with a date. By default it's now, so you can specify yesterday or today at midnight ...

onRender

This event is fired when a day is rendered inside the datepicker. Should return a string. Return 'disabled' to disable the day from being selected.

$('#date-end')
    .datetimepicker({
        onRender: function(date) {
            return ev.date.valueOf() < date-start-display.valueOf() ? ' disabled' : '';
        }
    });

Markup

Format as component.

<div class="input-append date" id="datetimepicker" data-date="12-02-2012" data-date-format="dd-mm-yyyy">
    <input class="span2" size="16" type="text" value="12-02-2012">
    <span class="add-on"><i class="icon-th"></i></span>
</div>

Format as component with reset button to clear the input field.

<div class="input-append date" id="datetimepicker" data-date="12-02-2012" data-date-format="dd-mm-yyyy">
    <input class="span2" size="16" type="text" value="12-02-2012">
    <span class="add-on"><i class="icon-remove"></i></span>
    <span class="add-on"><i class="icon-th"></i></span>
</div>

Methods

.datetimepicker(options)

Initializes an datetimepicker.

remove

Arguments: None

Remove the datetimepicker. Removes attached events, internal attached objects, and added HTML elements.

$('#datetimepicker').datetimepicker('remove');

show

Arguments: None

Show the datetimepicker.

$('#datetimepicker').datetimepicker('show');

hide

Arguments: None

Hide the datetimepicker.

$('#datetimepicker').datetimepicker('hide');

update

Arguments:

  • currentDate (Date).

Update the datetimepicker with the specified date.

$('#datetimepicker').datetimepicker('update', new Date());

Omit currentDate to update the datetimepicker with the current input value.

$('#datetimepicker').datetimepicker('update');

setStartDate

Arguments:

  • startDate (String)

Sets a new lower date limit on the datetimepicker.

$('#datetimepicker').datetimepicker('setStartDate', '2012-01-01');

Omit startDate (or provide an otherwise falsey value) to unset the limit.

$('#datetimepicker').datetimepicker('setStartDate');
$('#datetimepicker').datetimepicker('setStartDate', null);

setEndDate

Arguments:

  • endDate (String)

Sets a new upper date limit on the datetimepicker.

$('#datetimepicker').datetimepicker('setEndDate', '2012-12-31');

Omit endDate (or provide an otherwise falsey value) to unset the limit.

$('#datetimepicker').datetimepicker('setEndDate');
$('#datetimepicker').datetimepicker('setEndDate', null);

setDaysOfWeekDisabled

Arguments:

  • daysOfWeekDisabled (String|Array)

Sets the days of week that should be disabled.

$('#datetimepicker').datetimepicker('setDaysOfWeekDisabled', [0,6]);

Omit daysOfWeekDisabled (or provide an otherwise falsey value) to unset the disabled days.

$('#datetimepicker').datetimepicker('setDaysOfWeekDisabled');
$('#datetimepicker').datetimepicker('setDaysOfWeekDisabled', null);

Events

Datetimepicker class exposes a few events for manipulating the dates.

show

Fired when the date picker is displayed.

hide

Fired when the date picker is hidden.

changeDate

Fired when the date is changed.

$('#date-end')
    .datetimepicker()
    .on('changeDate', function(ev){
        if (ev.date.valueOf() < date-start-display.valueOf()){
            ....
        }
    });

changeYear

Fired when the view year is changed from decade view.

changeMonth

Fired when the view month is changed from year view.

outOfRange

Fired when you pick a date before the startDate or after the endDate or when you specify a date via the methodsetDate or setUTCDate..

Keyboard support

The datetimepicker includes some keyboard navigation:

up, down, left, right arrow keys

By themselves, left/right will move backward/forward one day, up/down will move back/forward one week.

With the shift key, up/left will move backward one month, down/right will move forward one month.

With the ctrl key, up/left will move backward one year, down/right will move forward oone year.

Shift+ctrl behaves the same as ctrl -- that is, it does not change both month and year simultaneously, only the year.

escape

The escape key can be used to hide and re-show the datetimepicker; this is necessary if the user wants to manually edit the value.

enter

When the picker is visible, enter will simply hide it. When the picker is not visible, enter will have normal effects -- submitting the current form, etc.

Mouse Wheel View Navigation

In order to make this plugin easier to set different part of date time, mouse wheel has been used to navigate through different views. Scroll up your mouse wheel to navigate to the decade year view. Scroll down will lead to the minute view.

Dependency

To enalbe this feature. jQuery Mouse Wheel Plugin must be included before using this feature.

Options

wheelViewModeNavigation

Boolean. Default: false

Whether or not to enable navigating through different view mode using mouse wheel.

wheelViewModeNavigationInverseDirection

Boolean. Default: false

Whether or not to reverse the direction of scrolling. Default is scroll up to the decade view.

wheelViewModeNavigationDelay

Integer. Default: 100

Time delays between the next respond to the wheel command, it controls the speed between switching in different views. Unit is in million seconds.

About viewSelect option

The recommended value for viewSelect option is 4 when this feature is enable. That means you can easily update any the value in every view. This option value is applied in the demo page.

Feature Demo

A simple Demo page is given to show it's simple idea.

I18N

The plugin supports i18n for the month and weekday names and the weekStart option. The default is English ('en'); other available translations are avilable in the js/locales/ directory, simply include your desired locale after the plugin. To add more languages, simply add a key to $.fn.datetimepicker.dates, before calling.datetimepicker(). Example:

$.fn.datetimepicker.dates['en'] = {
    days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
    daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
    months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
    monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
    today: "Today"
};

You can override the default date format in the language configuration with format attribute. Example:

$.fn.datetimepicker.dates['pt-BR'] = {
    format: 'dd/mm/yyyy'
};

Right-to-left languages may also include rtl: true to make the calendar display appropriately.

If your browser (or those of your users) is displaying characters wrong, chances are the browser is loading the javascript file with a non-unicode encoding. Simply add charset="UTF-8" to your script tag:

<script type="text/javascript" src="bootstrap-datetimepicker.de.js" charset="UTF-8"></script>
分享到:
评论

相关推荐

    Bootstrap的日期范围选择控件bootstrap-daterangepicker.zip

    bootstrap-daterangepicker 是基于 Twitter 的 Bootstrap 框架下的一个日期选择控件。 标签:bootstrap

    用bootstrap结合php搭建MIS系统框架

    官方介绍:Bootstrap, from Twitter基于HTML,CSS,JAVASCRIPT的简洁灵活的流行前端框架及交互组件集 http://twitter.github.com/bootstrap/ http://wrongwaycn.github.com/bootstrap/docs/ 推荐2款我试用的...

    BootStrap日历

    Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。

    轻松使用jQuery双向select控件Bootstrap Dual Listbox

    本文主要为大家介绍了双向select控件Bootstrap Dual Listbox的使用方法,Bootstrap Dual列表是一个为响应Twitter优化的列表框插件,它可以用在所有的现代浏览器和触摸设备上,分享给大家,具体如下: 效果图: 一、...

    Spring+SpringMVC+Ehcache+Shiro+BootStrap企业级开发平台

    【B1】Spring+SpringMVC+Ehcache+Shiro+BootStrap企业级开发平台源码下载 内置功能 用户管理 角色管理 菜单管理 字典管理 部门管理 附件管理 参数管理 连接池监视 ... 日期控件: LayDate

    BForms, 用于 ASP.NET MVC的Bootstrap 表单.zip

    BForms, 用于 ASP.NET MVC的Bootstrap 表单 Bootstrap 支持 ASP.NET MVC控件BForms开源框架由一个由 ASP.NET MVC 。Javascript 。Javascript和自定义CSS组成的Collection 框架组成,它扩展了 Twitter

    codecampsdq3-bootstrap-talk:Twitter关于Code Camp SDQ 3.0的Bootstrap讨论的源代码-bootstrap source code

    Twitter关于Code Camp SDQ 3.0的Bootstrap讨论的来源。 有关更多信息,请访问: : 。 科目 演讲分为6部分。 整个通话时长为90分钟。 什么是Twitter Bootstrap? 它是什么,什么不是。 它的目的是什么。 优缺点...

    Aspnet-Tie.Controls.Bootstrap.zip

    Aspnet-Tie.Controls.Bootstrap.zip,用于asp.nettie.controls.bootstrap的twitter引导控件,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务。asp.net创建基于html5、css和javascript的网站,这些...

    OSx上的按钮控件KBButton.zip

    KBButton 为 OS X 平台增加了 Twitter Bootstrap 风格的按钮。 标签:KBButton

    MF00716-Java企业级开发平台源码.zip

    Java企业级开发平台源码 权限管理框架源码 开发语言 : JAVA 数据库 : MySQL 开发工具 : Eclipse 源码类型 : WebForm 注意:不带技术支持,有帮助文件,虚拟...弹出层:Layer、日期控件: LayDate、图表控件:echarts

    Web前端框架bootstrap实战【第一次接触使用】

    bootstrap是一个前端框架,他有自己的一套css样式,公司没美工,使用bootstar做出来的页面比较好看,使用日历控件实战&lt;link href="${path}js/bootstrap-3.3.5-dist/css/bootstrap-datetimepicker.min.css"

    第一章android界面设计利器

    Bootstrap也诞生了很多基于其上的封装框架较之Bootstrap更加美观更加便捷 ace 就是其中的佼佼者下面的配图就是ace一组控件的截图。 Bootstrap在国内的的流行程度相对要低因为国内很多用户仍然执着...

    一个用于创建标签输入框的jQuery插件

    一个用于创建标签输入框的jQuery插件,它与Twitter Typeahead.js和Twitter Bootstrap很好地配合使用

    Java版水果管理系统源码-syybi:西比

    日期控件: My97DatePicker 4、平台 服务器中间件:在Java EE 5规范(Servlet 2.5、JSP 2.1)下开发,支持应用服务器中间件 有Tomcat 6、Jboss 7、WebLogic 10、WebSphere 8。 数据库支持:目前仅提供MySql数据库的...

    餐厅营业查看系统Java源码-JavaFX_Resources:JavaFX_Resources

    Bootstrap 的部分端口。 - CalendarFX 是 JavaFX 8 的日历框架。它包含一组专业的自定义控件,可用于为任何类型的应用程序实现日历 UI。 - ChartFx 是为 [FAIR] () 开发的科学图表库,专注于性能优化的实时数据可视...

Global site tag (gtag.js) - Google Analytics