我是JavaScript的新手,我有一个非常基本的问题。
我在每个语句中的警报中都有这个语句,它完美地运行:
alert( " <g:each in="${index}"> ${""+it.indexDate+""+it.value } </g:each> " );
现在我有了这个变量:
var todaysDate = new Date ;
我想检查上面的indexDate是否与todaysDate相同。
我怎么能做到这一点?
感谢。
答案 0 :(得分:0)
使用==
运算符:
if(indexDate == todaysDate) {
alert("They're the same!");
}
答案 1 :(得分:0)
如果要与毫秒的精度进行比较,则需要比较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>
答案 2 :(得分:0)
如果您想知道这两个日期是否在同一天(但不一定是相同的小时,分钟和秒),您可以通过以下方式进行比较:
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位数年份,月份和月份日期,如果所有三个相等,那么它必须是同一天。