UNPKG

@vantist/rolldate

Version:

rolldate 多格式、功能强大的移动端日期选择插件

514 lines (490 loc) 13.9 kB
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>rolldate demo</title> <!-- bootstrap.css僅作為示例演示使用 --> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> <script src="../dist/rolldate.js"></script> <style type="text/css"> h1 { font-size: 30px; } .form-control[readonly] { background: none; } @media(max-width: 414px) { .form-control { font-size: 12px; } } @media(max-width: 360px) { .form-control { font-size: 10px; padding: 0 5px; } } @media(max-width: 320px) { .col-xs-6 { padding: 0 5px; } } </style> </head> <body> <div class="jumbotron"> <div class="container"> <h1>rolldate 多格式、功能強大的移動端日期選擇插件</h1> <p>此為rolldate 3.0新版,使用better-scroll替換了iscroll,舊版請點擊 <a href="https://weijhfly.github.io/rolldate-index2.html">返回舊版</a></p> </div> </div> <div class="container"> <h4><strong>支持格式:(無限制)</strong></h4> <p><strong>規則:年-YYYY 月-MM 日-DD 時-HH 分-mm 秒-ss 使用/、-、空格、:之一分隔,可以隨意組合</strong></p> <p>例:YYYY-MM、YYYY-MM-DD、YYYY-MM-DD HH:mm、YYYY-MM-DD HH:mm:ss、YYYY、MM、DD、HH:mm、HH:mm:ss、YYYY-MM-DD HH、HH、mm、ss、YYYY/DD...</p> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-1" placeholder="YYYY-MM"> </div> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-2" placeholder="YYYY-MM-DD"> </div> </div> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-3" placeholder="YYYY-MM-DD HH"> </div> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-4" placeholder="YYYY-MM-DD HH:mm"> </div> </div> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-5" placeholder="YYYY-MM-DD HH:mm:ss"> </div> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-6" placeholder="HH:mm"> </div> </div> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-7" placeholder="HH:mm:ss"> </div> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-8" placeholder="YYYY"> </div> </div> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-9" placeholder="MM"> </div> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-10" placeholder="DD"> </div> </div> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-11" placeholder="HH"> </div> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-12" placeholder="mm"> </div> </div> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-13" placeholder="ss"> </div> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group1-14" placeholder="YYYY/DD"> </div> </div> </div> <h4><strong>回調函數:</strong></h4> <p>init、moveEnd、confirm、cancel</p> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group2-1" placeholder="完整實例"> </div> </div> <h5 class="col-xs-12">init return false可阻止插件運行</h5> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group2-2" placeholder="init"> </div> </div> <h5 class="col-xs-12">confirm return false阻止插件運行,return其他值可以修改日期展示</h5> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group2-3" placeholder="confirm修改日期"> </div> </div> </div> <h4><strong>自定義語言</strong></h4> <p>lang</p> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group3-1" placeholder="lang"> </div> </div> </div> <h4><strong>設置默認日期</strong></h4> <p>value</p> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group4-1" placeholder="設置默認日期"> </div> </div> </div> <h4><strong>el傳dom對象</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group5-1" placeholder="el傳dom對象"> </div> </div> </div> <h4><strong>分鐘間隔</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group6-1" placeholder="分鐘間隔5"> </div> </div> </div> <h4><strong>使用原生click</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group7-1" placeholder="trigger:'click'"> </div> </div> </div> <h4><strong>不傳el</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group9-1" placeholder="不傳el"> </div> </div> </div> <h4><strong>其他示例</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group8-1" placeholder="不能小於當前的日期"> </div> </div> </div> <h4><strong>最大時間</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group10-1" placeholder="不能大於 2024-01-01"> </div> </div> </div> <h4><strong>最小時間</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group11-1" placeholder="不能小於 2023-01-01"> </div> </div> </div> <h4><strong>AM/PM</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group12-1" placeholder="AM/PM"> </div> </div> </div> <h4><strong>上午/下午</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group13-1" placeholder="上午/下午"> </div> </div> </div> <h4><strong>最小時間(time)</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group14-1" placeholder="不能小於 01:00, 不能大於 22:00"> </div> </div> </div> <h4><strong>最小時間(time) AM/PM</strong></h4> <div class="row"> <div class="form-group clearfix"> <div class="col-xs-6"> <input readonly class="form-control" type="text" id="date-group15-1" placeholder="不能小於 01:00, 不能大於 22:00 AM/PM"> </div> </div> </div> </div> <script> window.onload = function() { // 格式 new Rolldate({ el: '#date-group1-1', format: 'YYYY-MM', beginYear: 2000, endYear: 2100 }) new Rolldate({ el: '#date-group1-2', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100 }) new Rolldate({ el: '#date-group1-3', format: 'YYYY-MM-DD HH' }) new Rolldate({ el: '#date-group1-4', format: 'YYYY-MM-DD HH:mm', beginYear: 2000, endYear: 2100 }) new Rolldate({ el: '#date-group1-5', format: 'YYYY-MM-DD HH:mm:ss', beginYear: 2000, endYear: 2100 }) new Rolldate({ el: '#date-group1-6', format: 'HH:mm' }) new Rolldate({ el: '#date-group1-7', format: 'HH:mm:ss' }) new Rolldate({ el: '#date-group1-8', format: 'YYYY', beginYear: 2000, endYear: 2100 }) new Rolldate({ el: '#date-group1-9', format: 'MM' }) new Rolldate({ el: '#date-group1-10', format: 'DD' }) new Rolldate({ el: '#date-group1-11', format: 'HH' }) new Rolldate({ el: '#date-group1-12', format: 'mm' }) new Rolldate({ el: '#date-group1-13', format: 'ss' }) new Rolldate({ el: '#date-group1-14', format: 'YYYY/DD' }) /* 回調函數 * tips: 在vue及其他mvvm框架中使用時,在confirm中修改v-model綁定的數據即可 */ new Rolldate({ el: '#date-group2-1', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, init: function() { console.log('插件開始觸發'); }, moveEnd: function(scroll) { console.log(scroll) console.log('滾動結束'); }, confirm: function(date) { console.log(date) console.log('確定按鈕觸發'); }, cancel: function() { console.log('插件運行取消'); } }) new Rolldate({ el: '#date-group2-2', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, init: function() { if (1 == 1) { console.log('阻止插件繼續執行'); return false; } } }) new Rolldate({ el: '#date-group2-3', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, confirm: function(date) { return date.replace(/-/g, '/'); } }) // 自定義語言 var lang = { title: '自定義標題', cancel: '取消', confirm: '確認', reset: '重置', year: '年', month: '月', day: '日', hour: '時', min: '分', sec: '秒' }; // 如果某個值未修改可不傳 以上同 var lang = {title:'自定義標題'} 允許傳空串 new Rolldate({ el: '#date-group3-1', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, lang: lang }) // 設置預設日期 內部使用document.getElementById('date').bindDate = new Date('2019/05/13'); new Rolldate({ el: '#date-group4-1', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, value: '2017-10-21' //或2017-10-21 23:52:50 }) // el傳dom物件,僅支援單一dom物件 new Rolldate({ el: document.getElementById('date-group5-1'), format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100 }) // 分鐘按指定數分隔 new Rolldate({ el: '#date-group6-1', format: 'HH:mm', minStep: 5 }) // 使用原生click new Rolldate({ el: '#date-group7-1', trigger: 'click' }) // 不傳 el var el = document.getElementById('date-group9-1'); el.addEventListener('click', function() { rd.show(); }) var rd = new Rolldate({ confirm: function(date) { el.value = date; }, reset: function() { el.value = ''; } }) // 其他範例 // 日期判斷 new Rolldate({ el: '#date-group8-1', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, confirm: function(date) { var d = new Date(), d1 = new Date(date.replace(/\-/g, "\/")), d2 = new Date(d.getFullYear() + '/' + (d.getMonth() + 1) + '/' + d.getDate()); //如果非'YYYY-MM-DD'格式,需要另做調整 if (d1 < d2) { alert('不能小於當前的日期'); return false; } } }) // 最大時間 new Rolldate({ el: '#date-group10-1', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, max: '2024-01-01' }) // 最小時間 new Rolldate({ el: '#date-group11-1', format: 'YYYY-MM-DD', beginYear: 2000, endYear: 2100, min: '2023-01-01' }) // AM/PM new Rolldate({ el: '#date-group12-1', format: 'HH:mm', showAMPM: true, keepAMPMLeft: false, lang: { year: '', month: '', day: '', hour: '', min: '', sec: '' } }) // 中文 AM/PM new Rolldate({ el: '#date-group13-1', format: 'HH:mm', showAMPM: true, keepAMPMLeft: true, lang: { year: '', month: '', day: '', hour: '', min: '', sec: '', am: '上午', pm: '下午' } }) // 最小時間 new Rolldate({ el: '#date-group14-1', format: 'HH:mm', min: '18:00', max: '22:00' }) // 最小時間 new Rolldate({ el: '#date-group15-1', format: 'HH:mm', min: '01:00', max: '22:00', showAMPM: true, keepAMPMLeft: false, }) } </script> </body> </html>