Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript重复天数计数器_Javascript - Fatal编程技术网

Javascript重复天数计数器

Javascript重复天数计数器,javascript,Javascript,我需要一个JavaScript函数,返回每年某个特定日期的剩余天数 我发现了下面的代码,但是如何使它每年都可以重复,而不是手动更改函数中的年份 function daysUntil(year, month, day) { var now = new Date(), dateEnd = new Date(year, month - 1, day), // months are zero-based days = (dateEnd - now) / 1000/60/60/

我需要一个JavaScript函数,返回每年某个特定日期的剩余天数

我发现了下面的代码,但是如何使它每年都可以重复,而不是手动更改函数中的年份

function daysUntil(year, month, day) {
  var now = new Date(),
      dateEnd = new Date(year, month - 1, day), // months are zero-based
      days = (dateEnd - now) / 1000/60/60/24;   // convert milliseconds to days

  return Math.round(days);
}

daysUntil(2013, 10, 26);

我认为我上面的问题不够清楚,我需要显示10月26日的剩余天数。因此,每年的10月27日再次开始。我不需要一个循环

“如何使其每年都可重复,而不是手动更改功能中的年份?”

好吧,你不可能做到每年无限,但你可以很容易地添加一个循环来获得一个特定的年数范围:

var d;
for (var y = 2013; y < 2099; y++) {
    d = daysUntil(y, 10, 26);
    // do something with d, e.g.,
    console.log(d);
}
vard;
对于(变量y=2013;y<2099;y++){
d=第(y,10,26)天;
//用d做某事,例如。,
控制台日志(d);
}
更新:您在问题中添加了以下详细信息:

“我认为我上面的问题不够清楚,我需要显示10月26日的剩余天数。因此,每年10月27日再次开始。我不需要循环。”

好的,这还不是很清楚,但我想你是说你的输入将只是一天和一个月,你想计算到下一天/月的天数,例如,到下一个生日的天数。如果是这样的话,可能是这样的:

function daysUntil(month, day) {
    var now = new Date(),
        currentYear = now.getFullYear(),
        dateEnd = new Date(currentYear, month - 1, day); // months are zero-based

    if (dateEnd - now < 0)  // have we already passed that date this year?
        dateEnd.setFullYear(currentYear + 1);

    return Math.ceil((dateEnd - now) / 1000/60/60/24);
}

console.log(daysUntil(10,11)); // 365           - results from today, Oct 11
console.log(daysUntil(10,26)); // 15
console.log(daysUntil(7,7));   // 269
功能日直至(月、日){
var now=新日期(),
currentYear=now.getFullYear(),
dateEnd=新日期(当前年份,月份-1,天);//月份以零为基础
if(dateEnd-now<0)//我们今年已经过了那个日期了吗?
dateEnd.setFullYear(当前年份+1);
返回Math.ceil((dateEnd-now)/1000/60/60/24);
}
console.log(daysUntil(10,11));//365-10月11日今天的结果
console.log(daysUntil(10,26));//15
console.log(daysUntil(7,7));//269

每年直到无限期?除非你想要一个无限循环,否则你需要一些结束。你的意思是,你想要返回还剩多少天和多少年?你能不能不做一些像
(days%365)
这样的事情,尽管这并不完全正确?“我需要一个jQuery函数”-你是说一个JavaScript函数?