-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 が日付と時刻の両方を格納するためです。あなたが書くときnew Date(2013, 09, 13)、値はその日の真夜中に等しいです(したがって、時間は00:00:00であり、あなたが書くときnew Date()、値は現在の日付と時刻に設定されるため、これら2つが等しくないのは本当です;)。

これを解決するには、次の行を変更します。

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);

このリンクで説明されているように、現在の時刻を午前 0 時に設定します。そのリンクは、答えを見つけるのに役立ちました:)。

于 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 に答える