English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Bootstrapのdatetimepickerとdaterangepickerの使用例の解説

bootstrapには時間選択ツールが2種類あります: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-left dateRange" スタイリング="幅:350px">
  <i class="glyphicon glyphicon-カレンダー fa fa-/i>
  <span id="searchDateRange"></span>
  <b class="caret"></b>
  </div>
 </div>
 </div>
 </div>
 </div>
</div>

 

jsコード:

 <script type="text/javascript">
 $(document).ready(function (){
 //時間プラグイン
 $('#reportrange span').html(moment().subtract('hours', 1).format('YYYY-MM-DD HH:mm:ss') + ' - ' + -MM-DD HH:mm:ss'));
 $('#reportrange').daterangepicker(
 {
  // startDate: moment().startOf('day'),
  //endDate: moment(),
  //minDate: '01/01/2012', //最小時間
  maxDate : moment(), //最大時間 
  
  days : 30
  }, //開始と終了時間の最大間隔
  showDropdowns : true,
  showWeekNumbers : false, //週の何週目を表示するかどうか
  timePicker : true, //
  timePickerIncrement : 60, //時間の増分、単位は分
  timePicker12Hour : false, //使用するかどうか12時間表示を24時間形式で行う
  ranges : {
  //最近1時間': [moment().subtract('hours',1)), moment()],
  今日': [moment().startOf('day'), moment()],
  昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],
  最近7日': [moment().subtract('days', 6)), moment()],
  最近30日': [moment().subtract('days', 29)), moment()]
  },
  opens : 'right', //日付選択ボックスの弹出位置
  buttonClasses : [ 'btn btn-default' ]}
  applyClass : 'btn-small btn-primary blue',
  cancelClass : 'btn-small',
  format : 'YYYY-MM-DD HH:mm:ss', //コントロール内のfromとtoに表示される日付フォーマット
  separator : ' to ',
  locale : {
  applyLabel : '確認',
  cancelLabel : 'キャンセル',
  fromLabel : '開始時間',
  toLabel : '終了時間',
  customRangeLabel : 'カスタム',
  daysOfWeek : [ '日', '月曜', '火曜', '水曜', '木曜', '金曜', '土曜' ],
  monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月',
  
  firstDay : 1
  
 }, function(start, end, label) {//フォーマットされた日付表示ボックス
  $('#reportrange span').html(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss'));
 
 //日付メニューの選択肢を設定 --開始--
 /*
 var dateOption ;
 if("${riqi}"=='day') {
 dateOption = "今日";
 }
 dateOption = "昨日";
 }
 dateOption ="最近"7日";
 }
 dateOption ="最近"30日";
 }else if("${riqi}"=='year'){
 dateOption ="過去1年";
 }else{
 dateOption = "カスタム";
 
 $(".daterangepicker").find("li").each(function (){
 if($(this).hasClass("active")){
 $(this).removeClass("active");
 
 if(dateOption==$(this).html()){
 $(this).addClass("active");
 
 */
 //日付メニューの選択肢を設定 --終了--
 })
</script>

ただし、この月の翻訳に問題があります。moment.min.jsファイルを修正することをお勧めします。 

も後で翻訳することができます、より完全なコード: 

var table;
 $(function () {
 table = $('#example').DataTable({
 "ajax": {}}
 "url":"/example/resources/server_processing_customCUrl.php",
 "data": function ( d ) {
  //サーバーに追加のパラメータを渡す
  d.extra_search = $('#reportrange span').html();
 
 
 "serverSide": true,
 "language": {
 "sProcessing": "処理中...",
 "sLengthMenu": "_MENU_ 件を表示",
 "sZeroRecords": "一致する結果が見つかりません",
 "sInfo": "_START_ から _END_ までの _TOTAL_ 件を表示",
 "sInfoEmpty": "0 から 0 までの 0 件を表示,合計 0 件",
 "sInfoFiltered": "( _MAX_ 件の結果からフィルタリング)",
 "sInfoPostFix": "",
 "sSearch": "検索:",
 "sUrl": "",
 "sEmptyTable": "テーブルにデータがありません",
 "sLoadingRecords": "読み込み中...",
 "sInfoThousands": ",",
 "oPaginate": {
  "sFirst": "最初のページ",
  "sPrevious": "前のページ",
  "sNext": "次のページ",
  "sLast": "最終ページ"
 },
 "oAria": {
  "sSortAscending": ": この列を昇順に並べ替え",
  "sSortDescending": ": この列を降順に並べ替え"
 
 },
 "dom":
  "<'row'<'span9'l<'#mytoolbox'>><'span3'f>r>"+
  "t"+
  "<'row'<'span6'i><'span6'p>>" ,
 initComplete:initComplete
 
 
 /**
 * テーブルのロードとレンダリングが完了した後に実行されるメソッド
 * @param data
 */
 function initComplete(data){
 var dataPlugin =
 '<div id="reportrange" class="pull-left dateRange" スタイリング="幅:400px;マージン- 10px"> '+
 日付:<i class="glyphicon glyphicon-カレンダー fa fa-/i> '+
 /span> '+
 <b class="caret"></b></div> ';
 $('#mytoolbox').append(dataPlugin);
 //時間プラグイン
 $('#reportrange span').html(moment().subtract('hours', 1).format('YYYY-MM-DD HH:mm:ss') + ' - ' + -MM-DD HH:mm:ss'));
 $('#reportrange').daterangepicker(
 {
  // startDate: moment().startOf('day'),
  //endDate: moment(),
  //minDate: '01/01/2012', //最小時間
  maxDate : moment(), //最大時間
  
  days : 30
  }, //開始と終了時間の最大間隔
  showDropdowns : true,
  showWeekNumbers : false, //週の何週目を表示するかどうか
  timePicker : true, //
  timePickerIncrement : 60, //時間の増分、単位は分
  timePicker12Hour : false, //使用するかどうか12時間表示を24時間形式で行う
  ranges : {
  //最近1時間': [moment().subtract('hours',1)), moment()],
  今日': [moment().startOf('day'), moment()],
  昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],
  最近7日': [moment().subtract('days', 6)), moment()],
  最近30日': [moment().subtract('days', 29)), moment()]
  },
  opens : 'right', //日付選択ボックスの弹出位置
  buttonClasses : [ 'btn btn-default' ]}
  applyClass : 'btn-small btn-primary blue',
  cancelClass : 'btn-small',
  format : 'YYYY-MM-DD HH:mm:ss', //コントロール内のfromとtoに表示される日付フォーマット
  separator : ' to ',
  locale : {
  applyLabel : '確認',
  cancelLabel : 'キャンセル',
  fromLabel : '開始時間',
  toLabel : '終了時間',
  customRangeLabel : 'カスタム',
  daysOfWeek : [ '日', '月曜', '火曜', '水曜', '木曜', '金曜', '土曜' ],
  monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月',
  
  firstDay : 1
  
 }, function(start, end, label) {//フォーマットされた日付表示ボックス
  $('#reportrange span').html(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss'));
 
 //日付メニューの選択肢を設定 --開始--
 var dateOption ;
 if("${riqi}"=='day') {
 dateOption = "今日";
 }
 dateOption = "昨日";
 }
 dateOption ="最近"7日";
 }
 dateOption ="最近"30日";
 }else if("${riqi}"=='year'){
 dateOption ="過去1年";
 }else{
 dateOption = "カスタム";
 
 $(".daterangepicker").find("li").each(function (){
 if($(this).hasClass("active")){
 $(this).removeClass("active");
 
 if(dateOption==$(this).html()){
 $(this).addClass("active");
 
 
 //日付メニューの選択肢を設定 --終了--
 //時間を選択した後、再読み込みをトリガーするメソッド
 $("#reportrange").on('apply.daterangepicker',function(){
 //時間を選択した後、dtのデータの再読み込みメソッドを実行する方法
 table.ajax.reload();
 //dtリクエストパラメータの取得
 var args = table.ajax.params();
 console.log("extra_searchとしてバックエンドに伝達される追加パラメータの値:"+args.extra_search);
 
 function getParam(url) {
 var data = decodeURI(url).split("ɷ
 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;
 
 

幸せな小さな驚き: 

daterangepickerの情報をオンラインで検索すると、比較的公式なウェブサイトを見つけることができます:http://www.daterangepicker.com/、APIが全面的ですが、実際の操作は便利ではありません;そのため、daterangepickerを推奨します-bs3

さらに深く学びたい場合は、ここをクリックして学習してください。以下に興味深い特別セクションを追加します:Bootstrap学習トレーニング Bootstrap実践トレーニング

これで本文のすべての内容が終わります。皆様の学習に役立つことを願っています。また、ナイアラトレーニングのサポートを多くいただければ幸いです。

基本チュートリアル
おすすめ