bootstrapのdaterangepicker(datepicker)を日本語化して少しカスタマイズ?して使う方法メモ
はじめに
タイトルのとおりですが知っていればかなり便利でした。
次回もサクっと使えるようにメモしておきます
使うもの
・jQuery
・Bootstrap
・bootstrap-daterangepicker
・moment.js
準備
jqueryとbootstrapはCDNを使用
bootstrap-daterangepickerはこちらからダウンロード
mmoment.jsはこちらの「moment+locale.js」からダウンロード
実装
daterangepickerを実装します。
今回のちょっとしたカスタマイズ?は
・各種ボタンとカレンダーを日本語化
・各種ボタンの色を変えてみる
イメージ
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <!-- jqueryとbootstrapを読み込む --> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" /> <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> <!-- DLしたmoment.jsを読み込む --> <script src="/js/moment-with-locales.min.js"></script> <!-- DLしたdatepicker.jsを読み込む --> <script src="daterangepicker.js"></script> <link rel="stylesheet" type="text/css" href="daterangepicker.css" /> <!-- 色を変えてみる --> <style type="text/css"> .daterangepicker td.active, .daterangepicker td.active:hover { background-color: #00a65a !important; border-color: #00a65a !important; } .daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { background: #00a65a !important; border: 1px solid #00a65a !important; } </style> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <input type="text" id="date" value=""> <script> $(function(){ moment.locale("ja"); $('#date').daterangepicker( { ranges: { '今日': [moment(), moment()], '昨日': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], '過去7日間': [moment().subtract(6, 'days'), moment()], '過去30日間': [moment().subtract(29, 'days'), moment()], '今月': [moment().startOf('month'), moment().endOf('month')], '先月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] }, startDate: moment().subtract(29, 'days'), endDate: moment(), format: "YYYY-MM-DD", locale: { applyLabel: "OK", customRangeLabel: "カスタム"} }, function (start, end) { console.log(start); $('#date').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); } ); }); </script> </body> </html>
ちなみにdatepicker単体でも使えるみたいで以下のページにやり方がのっていました
AdminLTEのdaterangepickerをDatePickerまたはDatetimePickerとして使いたい - Qiita
以上です