【发布时间】:2012-10-25 19:12:47
【问题描述】:
我正在尝试编写一个计数代码,以显示我们从特定日期开始有多少个星期一。
例如,自 2012 年 10 月 1 日起,我们有 4 个星期一到今天 10 月 25 日。
这第一步我可以通过从某些地方进行一些编码搜索并根据我的需要进行调整来实现。
现在对我来说棘手的部分是要找到一种方法来显示一个计数,该计数显示从现在到下个月剩余的百分比,以增加另一个星期一到主计数器。
例如,从 2012 年 1 月 1 日到现在,我们有 4 个星期一,但 10 月 25 日是星期四,那么我如何计算显示时间随着下星期一达到的剩余价值的增加而增加?
我尝试像使用天、小时、分钟和秒一样进行计数,因此每次运行时,它都会从今天开始计数,直到下周一为止,所以每周我们都会在counter: 6days 23hours 59minutes 59seconds 然后在星期一数上添加一个新数字,所以我们在 6 天后实现了一个新的星期一,但是当然,如果我访问运行中间代码的页面,我已经有了计数器增加的价值并计算每一秒的生活。
有人可以帮忙吗?如果您知道实现相同目标的更好方法,那完全没问题。
总结一下我想要实现的是一个计数器,它显示已经过去了多少个星期一以及下一个星期一还剩多少时间并实时计数。它必须永远持续下去,不能在下周一停止,在达到下周一之后它会一直持续到下周一。
欢迎提问!
<pre><code>
// This Code Counts how many mondays from a specified date to the actual date.
// Create a new date variable
var d = new Date();
var month = d.getMonth() + 1;
var day = d.getDate();
// Get the actual date and store on a variable
var actualDate = d.getFullYear() + '/' + (('' + month).length < 2 ? '0' : '') + month + '/' + (('' + day).length < 2 ? '0' : '') + day;
// Set dates start and get actual date
var date1 = new Date('10/01/2012'); // Set the begninning date here
var date2 = new Date(actualDate);
var monday = Math.abs(date1.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24 * 7);
monday -= 0.1;
monday = Math.floor(monday);
monday *= 1;
if (date1.getDay() == 1) monday += 1;
if (date2.getDay() == 1) monday += 1;
//$('').html(monday);
$("#showMondays").text(monday);
</pre></code>
这是周一的工作柜台:http://jsfiddle.net/hRaAF/
谢谢!
【问题讨论】:
-
您实际上想要达到的目标是否可能是向下到下周一?
-
其实是相反的,应该是向上计数。例如,从日期 X 到今天,我们有 4 个星期一,我想显示从用户访问网站的时间到上个星期一已经过去了多少,以及我们离下一个星期一还有多远。因此,如果我们在一周的中间,我们应该在计数上显示一半的值(时间,如天时分秒)并显示它增加,以便在我们到达那里时完成另一个星期一......这就像多少我们仍然需要完成的百分比才能将另一个星期一添加到柜台......