JQuery日期检查

时间:2013-09-13 18:20:45

标签: jquery

如何检查预设日期(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>

2 个答案:

答案 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);
}