通过与javascript中的今天日期进行比较来允许今天的日期和未来的日期

Posted

技术标签:

【中文标题】通过与javascript中的今天日期进行比较来允许今天的日期和未来的日期【英文标题】:Allow today's date and future date by comparing with today's date in javascript 【发布时间】:2013-03-27 18:34:10 【问题描述】:

我有一个输入表格,我可以在其中允许今天的日期和将来的日期,但不能允许昨天和以前的日期。我需要在客户端使用 java-script 进行此验证。

var futuredate = new Date($("#Deadline").val());
var today = new Date();

这给了我与时间的日期。 Mon Nov 04 2013 00:00:00 GMT+0530 (India Standard Time) 我只想比较用户输入今天日期的日期 输入日期为:Fri Apr 05 2013 00:00:00 GMT+0530 (India Standard Time) 当前日期来自 new Date():Fri Apr 05 2013 16:53:00 GMT+0530 (India Standard Time)

我尝试使用sethours(),它在当月工作得很好,但是当它以数字形式转换日期时,当输入的日期是上个月或之前的任何月份时,它会产生问题。 例如:输入的日期 date 是23/3/2013,今天是5/4/2013 它认为输入的日期是有效的。

var futuredate = new Date($("#Deadline").val()).setHours(0, 0, 0, 0);
var today = new Date().setHours(0, 0, 0, 0);
if (futuredate >= today) 
   alert("Valid");

else if (futuredate < today) 
   alert("InValid");

【问题讨论】:

比较日期有很多答案,请看这里 - ***.com/questions/11170054/… 我想比较没有时间的日期...我已经在堆栈上冲浪寻找答案...他们没有解决我的问题... @bluesky 您输入的日期是什么,请提供一个示例。 @bluesky 我已经添加了答案,请试一试 这与jquery-validate插件无关。请在标记您的问题时更加小心。已编辑。谢谢。 【参考方案1】:

试试下面的,它在使用setHours()之前使用一个小函数将你的日期字符串解析为一个日期对象。如果您的字符串格式为 dd/mm/yyyy 或 dd-mm-yyyy,这将起作用。

var futuredate = parseDate(input).setHours(0, 0, 0, 0);
var today = new Date().setHours(0, 0, 0, 0);
if (futuredate >= today) 
   alert("Valid");

else if (futuredate < today) 
   alert("InValid");


//function to return a date object from the date string passed to it
function parseDate(input) 
    var parts = input.match(/(\d+)/g);
    return new Date(parts[2], (parts[1]-1), parts[0]);

【讨论】:

【参考方案2】:

只需拆分日期并设置日期功能概念。使用这种方式我们可以轻松比较日期

 var a =futuredate.split('/');
 var b =today.split('/');
 var date1 = new Date(a[2],a[1],a[0]);
 var date2 = new Date(b[2],b[1],b[0]);

if (date1 >= date2) 
   alert("Valid");

else if (date1 < date2) 
   alert("InValid");

【讨论】:

以上是关于通过与javascript中的今天日期进行比较来允许今天的日期和未来的日期的主要内容,如果未能解决你的问题,请参考以下文章

将日期和时间与今天的日期和时间进行比较

通过将日期索引与当前日期进行比较来删除集合中的所有文档

如何在javascript中将当前日期时间与另一个日期时间进行比较

将今天日期与生日/假期数组进行比较的 JS 函数

如何通过与 Flutter Cloud Firestore 插件中的日期进行比较来获取记录?

MySQL选择多个表并选择日期并与今天的日期进行比较