如何检查输入日期是否等于今天的日期?

Jon*_*noB 59 javascript jquery

我有一个id为'date_trans'的表单输入.该日期输入的格式(有效的服务器端)可以是以下任何一种:

  • 日/月/年
  • DD-MM-YYYY
  • YYYY-MM-DD
  • YYYY/MM/DD

但是,在发布表单之前,我想检查date_trans字段的日期是否等于今天的日期.如果所用的日期是客户的日期(即它使用js),那就好了,因为我也在服务器上运行了一次双重检查.

我完全迷失了如何在jQuery或简单的旧javascript中进行日期比较.如果它有帮助,我使用jquery datepicker

Jam*_*ill 176

纯JS中的简单日期比较应该足够了:

// 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
}
Run Code Online (Sandbox Code Playgroud)

这是一个有效的JSFiddle.

  • 这当然等于`if((new Date(inputDate)).setHours(0,0,0,0)===(new Date()).setHours(0,0,0,0))` (10认同)
  • 如果要重复使用,请不要忘记克隆输入日期.==>使用newDate(date.valueOf()).setHours(0,0,0,0) (4认同)
  • 如果日期格式为"21-11-2011"或"21/11/2011",则不起作用 (3认同)
  • 因为我是utc-8,所以当时间晚于下午3点时,这对我来说并不总是有用.schellmax的答案(http://stackoverflow.com/a/26257591/2886089)效果更好. (3认同)
  • +1用于使用setHours的小时/分钟/秒/毫秒版本。 (2认同)

sch*_*max 76

为了完整性,取自这个解决方案:

你可以使用toDateString:

var today = new Date();
var isToday = (today.toDateString() == otherDate.toDateString());
Run Code Online (Sandbox Code Playgroud)

没有库依赖关系,并且看起来比前一个答案中显示的'setHours()'方法更清晰,imho

  • @Winnemucca,使用 === 并不总是更好。 (3认同)

Cen*_*ruk 21

尝试使用moment.js

moment('dd/mm/yyyy').isSame(Date.now(), 'day');
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以将'day'字符串替换为'year,month,minute'.


Phr*_*ogz 10

function sameDay( d1, d2 ){
  return d1.getUTCFullYear() == d2.getUTCFullYear() &&
         d1.getUTCMonth() == d2.getUTCMonth() &&
         d1.getUTCDate() == d2.getUTCDate();
}

if (sameDay( new Date(userString), new Date)){
  // ...
}
Run Code Online (Sandbox Code Playgroud)

使用UTC*方法可确保在同一全球日匹配的不同时区中的两个等效天数相同.(如果您直接解析这两个日期,则没有必要,但要考虑好事.)


Rav*_*ant 6

只需在javaScript中使用以下代码:

if(new Date(hireDate).getTime() > new Date().getTime())
{
//Date greater than today's date 
}
Run Code Online (Sandbox Code Playgroud)

根据您的要求更改条件.这是java脚本中比较比较的一个链接