English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在bootstrap中的时间选择器有两种:dateTimePicker和dateRangePicker
1、dateTimePicker好像是官方嫡插件:
需要的文件:
<link rel="stylesheet" href="css/bootstrap-datetimepicker.min.css"> <script src="js/bootstrap-datetimepicker.min.js"></script> <script src="js/bootstrap-datetimepicker.zh-CN.js"></script> <script src="js/moment.min.js"></script>
API直接参考:http://www.bootcss.com/p/bootstrap-datetimepicker/
2、dateRangePicker好像是第三方插件,它最终的是可以实现时间段的选择。
需要的文件:
<link rel="stylesheet" href="css/daterangepicker-bs3.css"> <script src="js/daterangepicker.js"></script> <script src="js/moment.min.js"></script>
html代码:
<div class="container-fluid"> <div class="row-fluid" style="margin-top:5px"> <div class="span4"> <div class="control-group"> <label class="control-label"> 日期: </label> <div class="controls"> <div id="reportrange" class="pull-gauche dateRange" style="largeur:350px"> <i class="glyphicon glyphicon-calendar fa fa-calendar"></i> <span id="searchDateRange"></span> <b class="caret"></b> </div> </div> </div> </div> </div> </div>
js代码:
<script type="text/javascript"> $(document).ready(function (){ //plugin de temps $('#reportrange span').html(moment().subtract('hours', 1).format('YYYY-MM-DD HH:mm:ss') + ' - ' + moment().format('YYYY-MM-DD HH:mm:ss')); $('#reportrange').daterangepicker( { // startDate: moment().startOf('day'), //endDate: moment(), //minDate: '01/01/2012', //heure minimale maxDate : moment(), //heure maximale dateLimit : { days : 30 }, //intervalle maximal entre la date de début et la date de fin showDropdowns : true, showWeekNumbers : false, //affichage du numéro de la semaine timePicker : true, //affichage des heures et des minutes timePickerIncrement : 60, //augmentation de l'intervalle de temps, en minutes timePicker12Hour : false, //utilisation12affichage de l'heure en système 12 heures ranges : { //dernier1heures': [moment().subtract('hours',1), moment()], aujourd'hui': [moment().startOf('day'), moment()], hier': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')], dernier7jour': [moment().subtract('days', 6), moment()], dernier30 jour': [moment().subtract('days', 29)), moment()] }, opens : 'right', //emplacement de la boîte de dialogue de sélection de la date buttonClasses : [ 'btn btn-par défaut' ]} applyClass : 'btn-petit btn-bleu primaire', -petit format : 'YYYY-MM-DD HH:mm:ss', //Format de date affiché dans le contrôle from et to separator : ' à ', locale : { applyLabel : 'Confirmer', cancelLabel : 'Annuler', fromLabel : 'Heure de début', toLabel : 'Heure de fin', customRangeLabel : 'personnalisé', daysOfWeek : [ 'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi' ], monthNames : [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', firstDay : 1 } }, function(start, end, label) {//Affichage de la date formatée $$('#reportrange span').html(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss')); }); //Définir l'élément sélectionné du menu de date --début-- /* var dateOption ; if("${riqi}"=='day') { dateOption = "aujourd'hui"; } dateOption = "hier"; } dateOption ="dernière7jour"; } dateOption ="dernière30 jour"; }else if("${riqi}"=='year'){ dateOption ="dernière année"; }else{ dateOption = "personnalisé"; } $$(".daterangepicker").find("li").each(function (){ if($$(this).hasClass("active")){ $$(this).removeClass("active"); } if(dateOption==$(this).html()){ $(this).addClass("active"); } });*/ //Définir l'élément sélectionné du menu de date --Fin-- }) </script>
但是这里的月份汉化存在问题,建议需要去moment.min.js文件里面去修改。
也可以在后期汉化,比较完整的代码:
var table; $(function () { table = $('#example').DataTable({ "ajax": { "url":"/example/ressources/server_processing_customCUrl.php", "data": function ( d ) { //Ajouter des paramètres supplémentaires à transmettre au serveur d.extra_search = $('#reportrange span').html(); }}, "processing": true, "serverSide": true, "language": { "sProcessing": "En cours de traitement...", "sLengthMenu": "Afficher _MENU_ éléments", "sZeroRecords": "Aucun résultat correspondant", "sInfo": "Affichage de _START_ à _END_ sur _TOTAL_ éléments", "sInfoEmpty": "Affichage de 0 à 0 sur 0 éléments", "sInfoFiltered": "(filtré sur _MAX_ éléments de _TOTAL_")", "sInfoPostFix": "", "sSearch": "Recherche:", "sUrl": "", "sEmptyTable": "Aucune donnée dans le tableau", "sLoadingRecords": "Chargement en cours...", "sInfoThousands": ",", "oPaginate": { "sFirst": "Première page", "sPrevious": "Page précédente", "sNext": "Page suivante", "sLast": "Dernière page" }, "oAria": { "sSortAscending": ": Trier cette colonne par ordre croissant", "sSortDescending": ": Trier cette colonne par ordre décroissant" } }, "dom": "<'row'<'span9'l<'#mytoolbox'>><'span3'f>r>"+ "t"+ "<'row'<'span6'i><'span6'p>>" initComplete:initComplete }); }); /** * méthode à exécuter après que le tableau ait été chargé et rendu * @param data */ function initComplete(data){ var dataPlugin = '<div id="reportrange" class="tirer-gauche dateRange" style="largeur:400px;marge-left: 10px"> '+ date : <i class="glyphicon glyphicon-calendar fa fa-calendar"></i> '+ <span id="searchDateRange"></span> '+ <b class="caret"></b></div> '; $('#mytoolbox').append(dataPlugin); //plugin de temps $('#reportrange span').html(moment().subtract('hours', 1).format('YYYY-MM-DD HH:mm:ss') + ' - ' + moment().format('YYYY-MM-DD HH:mm:ss')); $('#reportrange').daterangepicker( { // startDate: moment().startOf('day'), //endDate: moment(), //minDate: '01/01/2012', //heure minimale maxDate : moment(), //heure maximale dateLimit : { days : 30 }, //intervalle maximal entre la date de début et la date de fin showDropdowns : true, showWeekNumbers : false, //affichage du numéro de la semaine timePicker : true, //affichage des heures et des minutes timePickerIncrement : 60, //augmentation de l'intervalle de temps, en minutes timePicker12Hour : false, //utilisation12affichage de l'heure en système 12 heures ranges : { //dernier1heures': [moment().subtract('hours',1), moment()], aujourd'hui': [moment().startOf('day'), moment()], hier': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')], dernier7jour': [moment().subtract('days', 6), moment()], dernier30 jour': [moment().subtract('days', 29)), moment()] }, opens : 'right', //emplacement de la boîte de dialogue de sélection de la date buttonClasses : [ 'btn btn-par défaut' ]} applyClass : 'btn-petit btn-bleu primaire', -petit format : 'YYYY-MM-DD HH:mm:ss', //Format de date affiché dans le contrôle from et to separator : ' à ', locale : { applyLabel : 'Confirmer', cancelLabel : 'Annuler', fromLabel : 'Heure de début', toLabel : 'Heure de fin', customRangeLabel : 'personnalisé', daysOfWeek : [ 'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi' ], monthNames : [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', firstDay : 1 } }, function(start, end, label) {//Affichage de la date formatée $$('#reportrange span').html(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss')); }); //Définir l'élément sélectionné du menu de date --début-- var dateOption ; if("${riqi}"=='day') { dateOption = "aujourd'hui"; } dateOption = "hier"; } dateOption ="dernière7jour"; } dateOption ="dernière30 jour"; }else if("${riqi}"=='year'){ dateOption ="dernière année"; }else{ dateOption = "personnalisé"; } $$(".daterangepicker").find("li").each(function (){ if($$(this).hasClass("active")){ $$(this).removeClass("active"); } if(dateOption==$(this).html()){ $(this).addClass("active"); } }); //Définir l'élément sélectionné du menu de date --Fin-- //Méthode déclenchée après avoir sélectionné une date $("#reportrange").on('apply.daterangepicker',function(){ //Méthode de rechargement des données de dt après avoir sélectionné une date table.ajax.reload(); //Obtenir les paramètres de la requête dt var args = table.ajax.params(); console.log("La valeur du paramètre extra_search transmise en arrière-plan est : "+args.extra_search); }); function getParam(url) { var data = decodeURI(url).split("?")[1]; var param = {}; var strs = data.split("&"); for(var i = 0; i<strs.length; i++{ param[strs[i].split("=")[0]] = strs[i].split("=")[1]; } return param; } }
Petite surprise heureuse :
Lorsque vous cherchez des informations sur daterangepicker sur le Web, vous trouverez un site officiel : http://www.daterangepicker.com/complète en termes d'API, mais l'habitude d'opération réelle n'est pas pratique ; donc je recommande d'utiliser daterangepicker-bs3.
Si vous souhaitez approfondir votre apprentissage, vous pouvez cliquer ici pour étudier, et je vous présente deux sujets spéciaux : Tutoriel de Bootstrap, Tutoriel pratique Bootstrap
Ceci est tout le contenu de cet article, j'espère que cela pourra aider votre apprentissage, et j'espère que vous continuerez à soutenir le tutoriel de cri.