GRAILS: нужна помощь в каждом утверждении - PullRequest
0 голосов
/ 22 ноября 2011

Я новичок в JavaScript, у меня очень простой вопрос.

У меня есть каждое каждое утверждение в предупреждении в каждом моем утверждении, которое отлично работает:

alert( " <g:each in="${index}"> ${""+it.indexDate+""+it.value }  </g:each>  " );

Теперь яесть эта переменная:

var todaysDate = new Date ;

Я хочу проверить, совпадает ли вышеуказанный indexDate с todaysDate.

Как я могу точно это сделать?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 22 ноября 2011

Если вы хотите сравнить с точностью до миллисекунд, вы сравниваете значение getTime() обоих Date объектов.

if (it.indexDate.getTime() === todaysDate.getTime() ) {
  //Do something when todaysDate is it.indexDate
}

Если вы хотите сравнить только часть даты, вы сравниваетеgetDate() значение.

if (it.indexDate.getDate() === todaysDate.getDate() ) {
  //Do something when todaysDate is it.indexDate
}

В рамках Grails вы используете следующий код

<g:each in=${index}>
  <g:set var="todaysDate" value="${new Date()}" />
  <g:if test="${it.indexDate.getTime() === todaysDate.getTime()}">
      //code when the comparison passes
  </if>
</g:each>
0 голосов
/ 22 ноября 2011

Если вы хотите узнать, являются ли эти две даты одним днем ​​(но не обязательно одинаковыми часами, минутами и секундами), вы можете выполнить сравнение одним из следующих способов:

function getNumDays(date) {
    return(Math.floor(date.getTime()/(1000*60*60*24)));
}

if (getNumDays(it.indexDate) == getNumDays(todaysDate)) {
    // same day
}

Или более грубый метод сравнения года, месяца и дня месяца:

if ((it.indexDate.getFullYear() == todaysDate.getFullYear()) && 
   (it.indexDate.getDate() == todaysDate.getDate()) &&
   (it.indexDate.getDay() == todaysDate.getDay())) {
   // same day
}

Первая опция получает количество миллисекунд с 01.01.1970 и вычисляет, сколько дней прошло с тех пор (округление вниз). Если с того времени оба значения даты имеют одинаковое количество дней, то это один и тот же день.

Второй вариант сравнивает четырехзначный год, месяц и день месяца, и если все три равны, то это должен быть один и тот же день.

0 голосов
/ 22 ноября 2011

Используйте оператор ==:

if(indexDate == todaysDate) {
  alert("They're the same!");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...