antd 日期组件(DatePicker.RangePicker)使用

举例子:

我们在后台发布一个商品 秒杀时间分 开始、结束

需求:开始时间不能选择现在时间的之前精确到分   比如(现在是 2019-09-28 16:01:00    2019-09-28 16:00:00之前日期是不能选择的 )

 

 

 

 

 

 

1.要看(还要安装 yarn add moment)moment.js(http://momentjs.cn/docs/)  因为 DatePicker是基于它来实现的 具体主要看如何取时间

console.log(moment().get('year')); // 年
console.log(moment().get('month')+1);  // 月 从 0 to 11 所以需要自己加1
console.log(moment().get('date')); // 日
console.log(moment().get('hour')); // 时
console.log(moment().get('minute')); // 分
console.log(moment().get('second')); // 秒
console.log(moment().get('millisecond')); // 毫秒
console.log(moment().subtract(1, "days")); // 前一天全部的日期
....

2.要看DatePicker 组件的文档(https://ant.design/components/date-picker-cn/) 看完或者看案例会发现它有两个方法(disabledDate禁止日期(年、月、日)、disabledTime禁止时间(时分秒))

import { DatePicker } from 'antd';

const { RangePicker } = DatePicker;

import moment from 'moment'; // 自行下载 yarn add moment

class AdvancedForm extends  Component{  
    range = (start, end) => {
        const result = [];
    for (let i = start; i < end; i++) {
      result.push(i);
    }
    return result;
  };
  disabledDate = (current) => {
    if(!current){
      return false
    }else{
      // 前一天后日期不可选
      return current < moment().subtract(1, "days")
    }
  };
  disabledRangeTime = (dates, type) => {
    if (type === 'start') { // 开始日期
      if (dates && dates.length >= 1) {
        console.log(dates[0].get('hour'));
        console.log(moment().get('hour'));
        // 判断选择时间=当前时间,=就截取分
        if (dates[0].get('hour') === moment().get('hour')) {
          return {
            // 传过去的数据是不显示的
            disabledHours: () => this.range(1, moment().get('hour')),
            disabledMinutes: () => this.range(0, moment().get('minute')),
            disabledSeconds: () => this.range(0, moment().get('second'))
          };
        }
      }
      return {
        // 传过去的数据是不显示的
        disabledHours: () => this.range(1, moment().get('hour'))
      };
    } else { // 结束日期
    }
  };
  render() {
     return (
       <RangePicker
          disabledDate={this.disabledDate}
          disabledTime={this.disabledRangeTime}
          onChange={this.handleShopCreateChange}
          onOk={this.handleShopCreateOk}
          showTime={{
             hideDisabledOptions: true,
             defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('11:59:59',          'HH:mm:ss')],
           }}
           format="YYYY-MM-DD HH:mm:ss"
       />
     )
  }
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值