检查日期是否在过去,无需提交表格
Check if date is in the past without submitting form
我有这个代码,我想检查日期是否是过去的。我想在输入日期后立即检查它,在提交表单之前。
<input id="datepicker" onchange="checkDate()" required class="datepicker-input" type="text" data-date-format="yyyy-mm-dd" >
<script type="text/javascript">
function checkDate() {
var selectedDate = document.getElementById('datepicker').value;
var now = new Date();
if (selectedDate < now) {
alert("Date must be in the future");
}
}
</script>
这不起作用,如果我输入过去的日期(例如 2014-12-03),它不会显示警报。
您
需要做的就是使用 Date 构造函数将<input>
生成的字符串转换为 Date new Date("2014-06-12")
function checkDate() {
var selectedText = document.getElementById('datepicker').value;
var selectedDate = new Date(selectedText);
var now = new Date();
if (selectedDate < now) {
alert("Date must be in the future");
}
}
<input id="datepicker" onchange="checkDate()" required class="datepicker-input" type="date" data-date-format="yyyy-mm-dd" >
date()
函数返回一个字符串。首先尝试使用 Date.parse()
函数将两个日期都转换为整数:
<input id="datepicker" onchange="checkDate()" required class="datepicker-input" type="text" data-date-format="yyyy-mm-dd" >
<script type="text/javascript">
function checkDate() {
var selectedDate = document.getElementById('datepicker').value;
var now = new Date();
var dt1 = Date.parse(now),
dt2 = Date.parse(selectedDate);
if (dt2 < dt1) {
alert("Date must be in the future");
}
}
</script>
对于那些使用 type="
date"(随 HTML5 引入)而不是 type="text" 的人,可以这样完成:
function checkDate() {
var date = this.value;
if(date.valueAsDate <= new Date()) {
//Date in the past
} else {
//Date in the future
}
}
你的代码非常接近,试试这个:
var selectedDate = $('#datepicker').datepicker('getDate');
var now = new Date();
if (selectedDate < now) {
// selected date is in the past
}
简单的地雷函数工作...
function check_not_past_date_time(enter_date) {
var a =new Date(enter_date);
var now =new Date();
if(a>now){
return true;
}else {
return false;
}
}
您可以使用
_isDate1LowerThanDate2(date1, date2) {
return new Date(date1) < new Date(date2);
}
在比较日期之前,应将其设置为 0 小时。这将确保它们之间的差异是 1 天的倍数。
const isPastDate = (date) => {
const specificDate = new Date(date).setHours(0, 0, 0, 0);
const today = new Date().setHours(0, 0, 0, 0);
return specificDate < today;
}
console.log(isPastDate("2021-08-10T23:59:00"));
相关文章:
- 是否可以使用动作=“;someFunction()"提交表格时
- 在提交过程中使用同步确认灯箱提交表格
- 在提交未提交表格时替换Div
- 返回假后提交表格
- NG模型在提交表格时未注册
- 提交表格前检查条款和条件
- 可以'不要在express/angular应用程序上提交表格
- return false dos't禁止提交表格
- 使用Greasemonkey提交表格
- 使用AngularJS在视图中预先填写并提交表格
- 在提交表格之前,请检查是否填写了重述2
- 提交表格后留下的表格
- 避免在按下“”时提交表格;输入“;按钮
- 在提交表格时IE8赢得了't将来自输入的属性以外的属性添加到请求中
- 为什么这个代码显示异常行为?(未提交表格)
- 为什么这不足以防止重复提交表格
- 点击链接提交表格并发送到多个电子邮件 ID
- Phonegap Camera API (iOS) 提交表格
- 验证通过后提交表格
- 提交表格后在同一页面上统计