-1

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

2 回答 2

2

这是因为 Date 同时存储日期和时间。You writenew Date(2013, 09, 13)时,该值等于当天的中午(因此时间为 00:00:00,而 You write 时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);

将当前时间设置为午夜,如此链接中所述。该链接帮助我找到了答案:)。

于 2013-09-13T18:23:38.717 回答
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);
}
于 2013-09-13T18:30:58.207 回答