最近在做一个小工具,从数据库中取出数据导出Excel,当然,第一步是选择时间区间来筛选需要导出的数据。

目前的需求是需要选择任意日期到当前日期的前一天的数据,因为今天没有过完,数据并不全面。

比如今天是6月26日,那么所能选择的最大时间则是6月25日。

首先引入layui的js和css,然后就可以开始写一个input:

<!--https://blog.kaygb.com-->
<input type="text" class="layui-input" id="selecttime">

然后JS这样写:

let curDate = new Date();
var preDate = new Date(curDate.getTime() - 24*60*60*1000); //前一天
var pre30Date = new Date(curDate.getTime() - 30*24*60*60*1000); //前30天

let beginDate = pre30Date.getFullYear() + "-" + (pre30Date.getMonth()+1) + "-" + pre30Date.getDate();
let lastDate = preDate.getFullYear() + "-" + (preDate.getMonth()+1) + "-" + preDate.getDate();

// https://blog.kaygb.com
laydate.render({
    elem: '#selecttime'
    ,type: 'date'
    ,range: true // 开始时间范围选择
    ,isPreview: true
    ,value: [beginDate + " - " + lastDate]  // 时间范围默认值
    ,max: -1        // 强制前一天
    ,done: function(value, date, endDate){
        console.log(value); //得到日期生成的值,如:2017-08-18
        console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
        console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
        console.log(new Date().toLocaleDateString());
        console.log("https://blog.kaygb.com");
    }
});

关于value的值,我调了好久才发现这个就是一个纯字符串,因为格式的问题,中间提示了好多次的错误。

至于为什么把max的值设置为-1,是因为文档中有这么一段话:

如果值为整数类型,且数字<86400000,则数字代表天数,如:min: -7,即代表最小日期在7天前,正数代表若干天后

仔细琢磨一番,既然-7 是七天前,那么0不就是今天当天了嘛!理所当然的,昨天就是-1啦。

最后的效果就如下图所示:

时间效果

微信公众号
最后修改:2021 年 06 月 26 日 10 : 37 PM
如果您觉得我的文章有帮助,请随意赞赏!