我目前正在寻找用 JavaScript 计算自定义日期的方法,一想到它我的头就开始痛。我有一个倒计时时钟,每隔一个星期二中午 12 点开始计时。我使用 Keith Wood 的 jQuery 倒计时插件使倒计时功能正常工作,但在计算每个月的每隔一个星期二并在这一天重置时需要帮助。
一如既往地感谢所有帮助。
提前致谢
最佳答案
我不得不做类似的事情(不是在 JS 中,但算法足够相似)
现在,在我开始之前,我要澄清一下,我假设这是每两周发生一次的事情,无论该月的长度如何,不会在第二个和第四个星期二发生,无论它最后一次发生的时间, 这更容易解决
选择此事件发生的过去日期(或第一次发生的日期),我们将在以下代码中调用此日期base
var base=new Date('date of first occurrence');
var one_day=1000*60*60*24; //length of day in ms
// assume we care about if the countdown should start today
// this may be different if you are building a calendar etc.
var date_to_check=new Date();
var diff_in_days=math.floor(date_to_check-base)/one_day);
var days_since_last_reset= diff_in_days%14;
if(days_since_last_reset == 0){
//date_to_check is the same day in the fortnightly cycle as base
//i.e. today at some point is when you'll want to show the timer
//If you only want to show the timer between certain times,
//add another check here
}else{
//next reset in (14 - days_since_last_reset) days from date_to_check
}
或者代码高尔夫风格的版本:
if( Math.floor((new Date()-new Date('date of first occurrence'))/1000/60/60/24)%14 == 0 )
//reset/start timer
关于javascript - 在 JavaScript 中计算日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812152/