如何检查inputdate是否等于今天的date?
我有一个ID为'date_trans'的表单input。 该dateinput的格式(经过validation的服务器端)可以是以下任何一种:
- 日/月/年
- DD-MM-YYYY
- YYYY-MM-DD
- YYYY / MM / DD
但是,在发布表单之前,我想检查一下date_trans字段的date是否等于今天的date。 它确定如果所采用的date是客户的date(即它使用js),因为我运行一个双重检查服务器以及。
我完全失去了如何做jQuery的datecomparrison或只是普通的旧javascript。 如果有帮助,我使用jquery datepicker
你看过datejs吗? (使用适当的全球化包正确parsingdd / mm / yyyy)
只需将date传递给它的parse()
方法,并与今天的date进行比较。
纯JS的简单date比较应该足够了:
// Create date from input value var inputDate = new Date("11/21/2011"); // Get today's date var todaysDate = new Date(); // call setHours to take the time out of the comparison if(inputDate.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0)) { // Date equals today's date }
这是一个可用的JSFiddle 。
为了完整性,从这个解决scheme中获得 :
你可以使用toDateString:
var today = new Date(); var isToday = (today.toDateString() == otherDate.toDateString());
没有库依赖关系,看起来比上一个答案imho中显示的“setHours()”方法更清洁
尝试使用moment.js
moment('dd/mm/yyyy').isSame(Date.now(), 'day');
如果需要的话,可以用'年,月,分'代替'日'string。
function sameDay( d1, d2 ){ return d1.getUTCFullYear() == d2.getUTCFullYear() && d1.getUTCMonth() == d2.getUTCMonth() && d1.getUTCDate() == d2.getUTCDate(); } if (sameDay( new Date(userString), new Date)){ // ... }
使用UTC *方法可确保在不同时区匹配相同全球一天的两个当天date相同。 (如果您直接parsing这两个date,则不需要,但想一想就好了。)
只需在您的javaScript中使用以下代码:
if(new Date(hireDate).getTime() > new Date().getTime()) { //Date greater than today's date }
根据您的要求更改条件。这里是一个比较在Java脚本中的一个环节
Date.js是用于操作和格式化date的方便的库。 它可以帮助在这种情况下。
以下解决scheme比较时间戳整数除以小时,分钟,秒,毫秒的值。
var reducedToDay = function(date){return ~~(date.getTime()/(1000*60*60*24));}; return reducedToDay(date1) == reducedToDay(date2)
代字号截断除法结果(请参阅关于整数除法的文章 )
TodayDate = new Date(); if (TodayDate > AnotherDate) {} else{}
<=也可以,尽pipe使用=,它可能必须匹配毫秒。