如何检查预设日期(2013年9月13日)是否等于JQuery中的当前日期 - 如果确实如此,则运行脚本。这是我现在的代码,但它不起作用。谢谢!
<script type="text/javascript">
$(document).scroll(function () {
var y = $(this).scrollTop();
var x = $("#third").position();
var date = new Date();
var today = new Date(2013,09,13);
$("#dot").hide();
if (y > (x.top - 50) && date == today) {
$("#dot").show();
$("#dot").addClass(
"animation");
}
else {
$("#dot").removeClass(
"animation");
}
});</script>
答案 0 :(得分:2)
这是因为Date存储了日期和时间。当您编写new Date(2013, 09, 13)
时,该值等于当天的中间值(因此时间为00:00:00,当您编写new Date()
时,该值设置为当前日期和时间,因此它是是的,那两个不相等;)。
要解决此问题,您可以更改行:
if (y > (x.top - 50) && date == today) {
到
var tomorrow = new Date(2013, 09, 14);
tomorrow.setHours(0, 0, 0, 0);
if (y > (x.top - 50) && date > today && date < tomorrow) {
...
或只是改变
var date = new Date();
var today = new Date(2013,09,13);
到
var date = new Date();
date.setHours(0,0,0,0);
var today = new Date(2013,09,13);
将当前时间设置为午夜,如this link中所述。这个链接帮助我找到答案:)。
答案 1 :(得分:0)
您的日期对象也包含时间值,因此它永远不会与预设日期匹配。 您需要在比较之前修剪时间部分。
var date = new Date();
date.setDate(date.getYear(), date.getMonth(), date.getDay());
var today = new Date(2013,09,13)
然后比较
if(date == today )
{
alert(true);
}
else
{
alert(false);
}