首页 > 解决方案 > 在 Litepicker 中禁用过去的日子

问题描述

我正在使用 Litepicker:https ://litepicker.com/ 如何禁用日历中的过去几天?例如,如果今天是 7 号,我需要禁用点击,并且颜色必须是过去几天(6 号、5 号、...)的灰色。

标签: javascriptdatepicker

解决方案


Litepicker 文档:

禁用选择天数。可以包含具有范围的数组:例如:[ ['2019-01-01', '2019-01-10'], '2019-01-31' ]。可以包含日期对象或 Unix 时间戳(以毫秒为单位)或字符串(必须等于选项 lockDaysFormat)。默认值:“YYYY-MM-DD”选项 lockDays 的日期格式。

使用 moment.js 获取今天的日期,减去一天,然后使用过去的日期设置方式。如果使用一个,你可以使用你的'setMin'日期,否则这仍然有效。

例如...

let format = 'YYYY-MM-DD'; //<-- Change this to the date format your using for your project, otherwise this doesn't matter keep it the same.
let today = moment(); //Gets today's date in a moment object
today.subtract(1,'days').format(format); //Subtract a day, then format to whatever your 'lockDaysFormat' string is.
const disallowedDates = [['2001-01-01', today]]//Make a 2D array with those those variables.

//Put in your litepicker settings..
new Litepicker({
  element: document.getElementById('datepicker'),
  singleMode: false,
  lockDaysFormat:format, //<-- Format used above with moment
  lockDays:disallowedDates, //<-- Disable dates
})


推荐阅读