0

我需要使用 JavaScript 在网站上每周重复显示下一个事件。假设我们每周六上午 10 点开始一个活动 - 我需要它来显示下一个活动在“周六,( Month) ( Date) 上午 10 点”开始。

我唯一需要在网站上保持动态的是下一个事件的日期(monthdate)。

想法 1:我开始考虑它的一种方式,我需要并有某种起始参考日历日期,从日程开始的地方开始,然后有一些 n 天模式来计算从该起点开始的即将到来的日期并比较那些针对今天的日期,然后显示序列中下一个的结果

想法 2:不是使用 N 天的模式从硬编码的参考点计算,如果我编码事件发生的星期几并检查,通过比较星期几和星期几来计算日期添加到今天的日期(必须考虑到 28/30/31 天的展期,以及一种方法来说明哪些月最多在哪个数字)

也许我的想法有点偏离基础,但这里的任何帮助将不胜感激。我正在学习 JavaScript,并且来自使用 jQuery 插件的 HTML+CSS 背景,如果这有助于以我能掌握的方式构建你的答案。

4

2 回答 2

1

这是一个可能有效的粗略解决方案。这只是您需要调试的一般代码,但我认为这是一个很好的起点!Date() 是一个内置的 JavaScript 对象。

var today = new Date();
//var dd = today.getDate();    *just some sample functions of Date()*
//var mm = today.getMonth()+1; *January is 0!*

if(today.getDay() == 6) alert('it is saturday');
// today.getDate() < 8   *this can be used to check where in the month a day falls
// if you want only first, second, third, etc., Saturday

请让我知道这是否有帮助!

于 2013-09-27T17:47:17.437 回答
0

您可以为此使用rSchedule(我维护的一个 javascript 重复库)。

例子:

假设我们每周六上午 10 点开始一个活动

import { Schedule } from '@rschedule/rschedule';
import { StandardDateAdapter } from '@rschedule/standard-date-adapter';

const schedule = new Schedule({
  rrules: [{
    frequency: 'WEEKLY',
    // the hypothetical start datetime of your recurring event
    start: new Date(2019, 5, 15, 10),
  }],
  dateAdapter: StandardDateAdapter,
});

我唯一需要在网站上保持动态的是下一个事件的日期(月份和日期)。

// get standard javascript iterator for occurrences starting after now
const iterator = schedule.occurrences({
  start: new Date()
})

// the next date
const nextDate = iterator.next().value;

// or iterate over all future occurrences
for (const date of iterator) {
  // do stuff...
}
于 2019-06-17T06:57:06.397 回答