javascript - 如何在Jquery中比较月份和年份的两个日期
问题描述
我的视图中有以下日期选择器字段。我想验证 fromDate 必须小于今天。
@(Html.Kendo().DatePickerFor(m => m.FromDate)
.Format("{0:MM/yyyy}")
.Depth(CalendarView.Year)
.Start(CalendarView.Year)
)
从日期开始
@(Html.Kendo().DatePickerFor(m => m.ToDate)
.Format("{0:MM/yyyy}")
.Depth(CalendarView.Year)
.Start(CalendarView.Year)
)
我使用了这个 Jquery,但它只检查月份部分。如何比较月份和年份
function validateDateRange() {
var messageText = '';
var fromDate = $('#FromDate').val();
var toDate = $('#ToDate').val();
if ((fromDate > toDate) && (toDate != null || toDate.length != 0) && (fromDate != null || fromDate.length != 0)) {
messageText = 'start Date Must be greater than or equal to the end date.';
}
return messageText;
}
解决方案
您可以将日期值更改为时间戳
function validateDateRange() {
var messageText = '';
var fromText = $('#FromDate').val();
var toText = $('#ToDate').val();
// since from/to texts has different date format we need to change it
// to a format new Date() would accept
var fromSplit = fromText.split("/");
var toSplit = toText.split("/");
// just put 1 day if it's not necessary
fromText = fromSplit[1] + "-" + fromSplit[0] + "-" + "1";
toText = toSplit[1] + "-" + toSplit[0] + "-" + "1";
// multiplying date by 1 will return a timestamp
var fromDate = new Date(fromText) * 1;
var toDate = new Date(toText) * 1;
/* Shouldn't be start date be lesser than end date? but whatever */
if (fromDate < toDate) {
messageText = 'start Date Must be greater than or equal to the end date.';
}
return messageText;
}
推荐阅读
- feed - 实时反馈反应 - getstream-io
- maven - 将 Spring @Sql 文件放在源目录中的测试类旁边
- javascript - 尝试针对当前用户选择一个随机用户以匹配两者具有相同的角色
- cron - 简单的 cron sleep RANDOM + wget 命令不起作用
- javascript - (节点:14688)UnhandledPromiseRejectionWarning:TypeError:无法读取 null 的属性“通道”
- javascript - 发送消息以使用 Javascript StreamElements 进行抽搐聊天时出错
- ios - 在 Swift/iOS 中将灰度图像转换为颜色图?
- java - 使用 Jpa 和 Thymeleaf 在 Spring Boot 中重定向页面
- c# - 与 .NET Core 一起构建 Rust 项目
- cassandra - Cassandra - 对表格有什么保证