GRAILS:每个语句都需要帮助

GRAILS : Need help in each statement

本文关键字:帮助 语句 GRAILS      更新时间:2023-09-26

我是JavaScript新手,我有一个非常基本的问题。

我在每个语句中都有一个警报,它工作得很好:

alert( " <g:each in="${index}"> ${""+it.indexDate+""+it.value }  </g:each>  " );
现在我有了这个变量:
var todaysDate = new Date ;

我想检查上面的indexDate是否与todaysDate相同。

我该怎么做呢?

谢谢。

如果您想比较毫秒的精度,您可以比较两个Date对象的getTime()值。

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

如果只比较Date部分,则比较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>

使用==操作符:

if(indexDate == todaysDate) {
  alert("They're the same!");
}

如果您想知道这两个日期是否同一天(但不一定是相同的小时、分和秒),您可以通过以下两种方式进行比较:

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
}

第一个选项获取自1970年1月1日以来的毫秒数,并计算从那时起已经过了多少天(向下舍入)。如果两个日期值从那时起的天数相同,则它们是同一天。

第二个选项比较4位数的年份、月份和日期,如果三者相等,则必须是同一天。