RangePicker日期时间组件添加此刻,今天按钮

实现效果

在这里插入图片描述

实现代码

import {
  ProForm,
  ProFormDateTimeRangePicker,
} from "@ant-design/pro-components";
import { Switch } from "antd";
import { useState } from "react";
import moment from 'moment'
import dayjs from 'dayjs'
export default () => {
  const rangePresets: {
    label: string;
    value: [Dayjs, Dayjs];
  }[] = [
    { label: '此刻', value: [moment(), moment()], },
    { label: '今天', value: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] },
  ];
  const [readonly, setReadonly] = useState(false);
  return (
    <div
      style={{
        padding: 24
      }}
    >
      <Switch
        style={{
          marginBlockEnd: 16
        }}
        checked={readonly}
        checkedChildren="编辑"
        unCheckedChildren="只读"
        onChange={setReadonly}
      />
      <ProForm
        readonly={readonly}
        initialValues={{
          dateTimeRange: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
        }}
        onFinish={async (values) => {
          console.log(values);
        }}
      >
        <ProForm.Group title="日期相关分组">
          <ProFormDateTimeRangePicker
            name="dateTimeRange"
            label="日期时间区间"
            showTime={{
              defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
              showNow: true,
            }}
            fieldProps={{
              // ranges: {
              //   此刻: [moment(), moment()],
              //   'This Month': [moment().startOf('month'), moment().endOf('month')],
              // }
              presets: rangePresets
            }}
            presets={rangePresets}
            ranges={{
              Today: [moment(), moment()],
              'This Month': [moment().startOf('month'), moment().endOf('month')],
            }}
            showNow={true}
            showToday={true}
          />
        </ProForm.Group>
      </ProForm>
    </div>
  );
};

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
el-date-picker是一个Vue组件库中的日期选择器组件,它可以用来让用户选择日期时间。如果你想要实现限制时间并且禁用“此刻按钮的功能,可以使用该组件中的以下几个属性: 1. disabled-hours:禁止选择的小时数组; 2. disabled-minutes:禁止选择的分钟数组; 3. disabled-seconds:禁止选择的秒钟数组; 4. :picker-options="{disabledDate: disabledDate}":禁止选择的日期时间函数。 其中,disabledDate函数可以返回一个布尔值,以禁用特定的日期时间。下面是一个例子,演示如何禁用今天之前的日期和禁用当前时间之前的时间: ``` <template> <el-date-picker v-model="date" :picker-options="{ disabledDate: disabledDate }" :disabled-hours="disabledHours" :disabled-minutes="disabledMinutes" :disabled-seconds="disabledSeconds" show-time type="datetime"> </el-date-picker> </template> <script> export default { data() { return { date: new Date(), pickerOptions: { disabledDate(time) { return time.getTime() < Date.now() - 8.64e7; } }, disabledHours() { const hours = []; for (let i = 0; i < 24; i++) { if (i < new Date().getHours()) { hours.push(i); } } return hours; }, disabledMinutes(hour) { if (hour === new Date().getHours()) { const minutes = []; for (let i = 0; i < 60; i++) { if (i < new Date().getMinutes()) { minutes.push(i); } } return minutes; } else { return []; } }, disabledSeconds(hour, minute) { if (hour === new Date().getHours() && minute === new Date().getMinutes()) { const seconds = []; for (let i = 0; i < 60; i++) { if (i < new Date().getSeconds()) { seconds.push(i); } } return seconds; } else { return []; } } }; }, }; </script> ``` 在上面的代码中,我们使用了disabledHours、disabledMinutes和disabledSeconds函数来禁用当前时间之前的小时、分钟和秒钟。同时,我们使用了pickerOptions对象中的disabledDate函数来禁用今天之前的日期。此外,我们还将show-time属性设置为true以显示时间选择器,并将type属性设置为datetime以指定日期选择器类型为日期时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

呐呐呐呐。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值