现在网上关于时间范围选择控件daterangepicker的用例较少,接下来我将为大家分享一下我在使用过程中遇到的问题以及如何解决的。
1.danterangepicker的汉化问题
local这个参数是构建本地语言应用的重要参数,我们只需要更改local中包含的参数即可实现汉化。
<script type="text/javascript"> $(function () { var locale = { format: 'YYYY-MM-DD hh:mm:ss', separator: ' --- ', applyLabel: "确定", cancelLabel: "取消", fromLabel: "起始时间", toLabel: "结束时间", customRangeLabel: "自定义", weekLabel: "W", daysOfWeek: ["日", "一", "二", "三", "四", "五", "六"], monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], firstDay: 0 }; $('#reservationtime').daterangepicker({ timePicker: true, timePickerIncrement: 30, locale: locale }); }); </script>
daterangepicker函数可以接收参数,其中local对象用于构建本地语言。
2.php格式转换,进行数据库比较
当我们用该控件的时候,往往需要将选择的时间范围和数据库中的时间进行比较。
控件默认生成的格式是:02/09/2017 - 03/19/2017,而一般情况下数据库中的格式是YYYY-MM-DD 格式。比较的时候需要进行格式转换。在php里面首先用explode方法分割字符串获取 起始日期和截止日期,然后再用date_create和date_format结合进行格式转化。之后就可以与数据库中时间进行比较了。进而筛选出所选日期间隔内的事件。
if (I("post.timeRange")) { $timeRange = I("post.timeRange"); $timeRange = explode(" - ", $timeRange); $start=date_format(date_create($timeRange[0]), 'Y-m-d'); $end=date_format(date_create($timeRange[1]), 'Y-m-d'); $map['time'] = array('between',array($start,$end)); array_push($condition, $map); }