Antd DatePicker组件扩展,支持刷新当前最新时间

实现下面的功能,日期选择器,可以自定义刷新icon,点击刷新icon的时候可以刷新当前时间。

看了一下官方文档目前不提供这样子的入口,suffixIcon只是切换后面的图标,但是不可以点击,官方的时间选择器的input框只可以聚焦,但不能点击。

所以考虑手动加一个刷新icon,并把icon和DatePicker放在一起,重新定义边框样式。

antd 版本:DatePicker v5.15

在这里插入图片描述

在这里插入图片描述

RefreshDatePicker/index.tsx:

import { ReloadOutlined } from '@ant-design/icons';
import { Button, Col, DatePicker, Row } from 'antd';
import dayjs from 'dayjs';

import './index.less';

interface Props {
  timestamp: number; // ms时间戳
  onChangeTime: (date: dayjs.Dayjs) => void;
}

export default function RefreshDatePicker(props: Props) {
  const { onChangeTime, timestamp } = props;

  return (
    <Row justify="space-between" align="middle" className="datepicker-with-refresh-view">
      <Col>
        <DatePicker
          onChange={onChangeTime}
          showTime
          allowClear={false}
          suffixIcon={null} // 不显示icon
          value={dayjs(timestamp)}
          variant="borderless" // 无边框形式,包括hover在输入框的时候,不存在蓝色边框变化
        />
      </Col>
      <Col>
       // 刷新当前的时间
        <Button type="link" onClick={() => onChangeTime(dayjs())} className="datepicker-with-refresh-button">
          <ReloadOutlined />
        </Button>
      </Col>
    </Row>
  );
}

RefreshDatePicker/index.less:

.datepicker-with-refresh-view {
  background: #ffffff; // 重新设置外层box的边框
  border-width: 1px;
  border-style: solid;
  border-color: #d9d9d9;
  border-radius: 8px;
  .ant-picker-borderless {
    padding-right: 0;
  }
  .datepicker-with-refresh-button {
    height: 24px;
    padding: 0;
    margin-right: 11px;
  }
}
antd-datepicker是Ant Design中提供的日期选择器组件,可用于选择日期和时间值。获取时间值的方式有以下几种: 1. 使用onChange事件:在DatePicker组件上绑定onChange事件,当用户选择了日期或时间时,会触发该事件并将选择的时间值作为参数传递给回调函数。可以通过e.target.value来获取选择的时间值。 ```jsx <DatePicker onChange={handleDateChange} /> ``` ```jsx const handleDateChange = (value) => { console.log(value); // 可以对选择的时间值进行相关处理 } ``` 2. 使用moment.js库:Ant Design的DatePicker组件默认返回的是Moment.js对象,可以使用该库提供的方法来获取和处理时间值。 ```jsx import moment from 'moment'; <DatePicker onChange={handleDateChange} /> ``` ```jsx const handleDateChange = (value) => { const selectedValue = moment(value).format('YYYY-MM-DD'); console.log(selectedValue); // 可以对选择的时间值进行相关处理 } ``` 相关设置方式包括: 1. 默认时间值:可以通过设置defaultValue属性来指定DatePicker组件的默认时间值。 ```jsx <DatePicker defaultValue={moment('2022-01-01', 'YYYY-MM-DD')} /> ``` 2. 可选时间范围:可以通过设置disabledDate属性来限制可选的时间范围。该属性接收一个函数,根据函数的返回值来控制禁用的日期。 ```jsx <DatePicker disabledDate={disabledDate} /> ``` ```jsx const disabledDate = (current) => { // 返回true表示禁用该日期 return current && current < moment().endOf('day'); } ``` 3. 时间格式:可以通过设置format属性来指定DatePicker组件时间格式。 ```jsx <DatePicker format="YYYY-MM-DD HH:mm:ss" /> ``` 以上就是antd-datepicker组件获取时间值及相关设置方式的介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值