获取今天之前的所有天数
Get all days before today
我尝试在我的 React 应用程序中实现来自 ant design 的范围选择器。我也用 momentjs.
<RangePicker
dateRender={current => {
const allDays = moment(current).format("DD-MM-YYYY");
const style = {};
if (moment(todayDate).isAfter(allDays)) {
style.border = "1px solid #1890ff";
style.borderRadius = "50%";
style.background = "red";
}
return (
<div className="ant-picker-cell-inner" style={style}>
{current.date()}
</div>
);
}}
/>
</>,
上面我尝试为今天之前的这些天添加样式,但我得到了下个月的结果(红色项目符号也用于 7 月),但我的期望是只为这些天添加样式在 6 月的今天之前,因此应该只对 6 月 8 日之前的所有月份使用红色背景。
如何解决这个问题?
演示:https://codesandbox.io/s/wild-fire-xki5j?file=/index.js:288-762
我已经删除了 .format()
并且它有效
const todayDate = moment();
ReactDOM.render(
<>
<RangePicker
dateRender={current => {
const style = {};
if (moment(todayDate).isAfter(current)) {
style.border = "1px solid #1890ff";
style.borderRadius = "50%";
style.background = "red";
}
return (
<div className="ant-picker-cell-inner" style={style}>
{current.date()}
</div>
);
}}
/>
</>,
document.getElementById("container")
);
看来您不需要格式化日期来进行比较。
@dmitro Alreday given answer, but you can also try this checkDate function you just need to pass date in string formate
let checkDate=function(allDates){
let result=false;
var dateParts = allDates.split("-");
var dateObject = new Date(
+dateParts[2],
dateParts[1] - 1,
+dateParts[0]
);
result= new Date(dateObject) < new Date(new Date().toDateString())
return result
}
我尝试在我的 React 应用程序中实现来自 ant design 的范围选择器。我也用 momentjs.
<RangePicker
dateRender={current => {
const allDays = moment(current).format("DD-MM-YYYY");
const style = {};
if (moment(todayDate).isAfter(allDays)) {
style.border = "1px solid #1890ff";
style.borderRadius = "50%";
style.background = "red";
}
return (
<div className="ant-picker-cell-inner" style={style}>
{current.date()}
</div>
);
}}
/>
</>,
上面我尝试为今天之前的这些天添加样式,但我得到了下个月的结果(红色项目符号也用于 7 月),但我的期望是只为这些天添加样式在 6 月的今天之前,因此应该只对 6 月 8 日之前的所有月份使用红色背景。
如何解决这个问题?
演示:https://codesandbox.io/s/wild-fire-xki5j?file=/index.js:288-762
我已经删除了 .format()
并且它有效
const todayDate = moment();
ReactDOM.render(
<>
<RangePicker
dateRender={current => {
const style = {};
if (moment(todayDate).isAfter(current)) {
style.border = "1px solid #1890ff";
style.borderRadius = "50%";
style.background = "red";
}
return (
<div className="ant-picker-cell-inner" style={style}>
{current.date()}
</div>
);
}}
/>
</>,
document.getElementById("container")
);
看来您不需要格式化日期来进行比较。
@dmitro Alreday given answer, but you can also try this checkDate function you just need to pass date in string formate
let checkDate=function(allDates){
let result=false;
var dateParts = allDates.split("-");
var dateObject = new Date(
+dateParts[2],
dateParts[1] - 1,
+dateParts[0]
);
result= new Date(dateObject) < new Date(new Date().toDateString())
return result
}