![](/img/trans.png)
[英]Javascript: calculating days, hours, minutes, seconds from birth year to today
[英]React Ant design Why are certain hours and minutes of days after today disabled?
为什么禁用今天之后几天的某些小时和分钟?
你好。 我正在使用 antdesign 日期选择器。 我写了一个function。作为未来的日期,只能在今天之后3分钟取一个日期。 日期不应早于当前时间。 我设置了这个。 但我只想为今天设置此规则。 我怎样才能取消其他日子的这条规则。
function getDisabledHours() {
var hours = [];
for (let i = 0; i < moment().hour(); i++) {
hours.push(i);
}
return hours;
}
function getDisabledMinutes() {
var minutes = [];
for (var i = 0; i - 3 < moment().minute(); i++) {
minutes.push(i);
}
return minutes;
}
<DatePicker
onChange={(d, v) => {
setStartTime(d, v);
}}
placeholder="Select Start Time"
format="YYYY-MM-DD HH:mm"
disabledDate={disabledDate}
disabledHours={getDisabledHours}
disabledMinutes={getDisabledMinutes}
showSecond={false}
// disabledSeconds={getDisabledSeconds}
showTime={{ defaultValue: moment(true, "HH:mm") }}
suffixIcon={DateIcon}
/>
我认为如果你分开你的输入并这样做对你来说会更容易:
import React, { useState } from "react"
import moment from "moment"
import { DatePicker, TimePicker } from "antd"
const Example = () => {
const [startDate, setStartDate] = useState()
const [startTime, setStartTime] = useState()
const disabledDate = (current) => {
return current && current <= moment().startOf("day")
}
const range = (start, end) => {
const result = []
for (let i = start; i < end; i++) {
result.push(i)
}
return result
}
const disabledTime = (current) => {
const now = moment()
if (current.isSame(startDate, "day")) {
return {
disabledHours: () => range(0, now.get("hours")),
disabledMinutes: () => range(0, now.get("minutes") + 3),
}
} else {
return {
disabledHours: () => [],
disabledMinutes: () => [],
}
}
}
return (
<>
<DatePicker
onChange={(date) => setStartDate(date)}
placeholder="Select Start Date"
format="YYYY-MM-DD"
disabledDate={disabledDate}
/>
<TimePicker
onChange={(time) => setStartTime(time)}
format="HH:mm"
disabled={startDate === undefined}
disabledTime={disabledTime}
/>
</>
)
}
export default Example
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.