UNPKG

moment-recur-ts

Version:

A momentjs plugin for matching and generating recurring dates.

840 lines (827 loc) 90.5 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Recur | moment-recur-ts</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="../assets/css/main.css"> </head> <body> <header> <div class="tsd-page-toolbar"> <div class="container"> <div class="table-wrap"> <div class="table-cell" id="tsd-search" data-index="../assets/js/search.js" data-base=".."> <div class="field"> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <input id="tsd-search-field" type="text" /> </div> <ul class="results"> <li class="state loading">Preparing search index...</li> <li class="state failure">The search index is not available</li> </ul> <a href="../index.html" class="title">moment-recur-ts</a> </div> <div class="table-cell" id="tsd-widgets"> <div id="tsd-filter"> <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a> <div class="tsd-filter-group"> <div class="tsd-select" id="tsd-filter-visibility"> <span class="tsd-select-label">All</span> <ul class="tsd-select-list"> <li data-value="public">Public</li> <li data-value="protected">Public/Protected</li> <li data-value="private" class="selected">All</li> </ul> </div> <input type="checkbox" id="tsd-filter-inherited" checked /> <label class="tsd-widget" for="tsd-filter-inherited">Inherited</label> <input type="checkbox" id="tsd-filter-externals" checked /> <label class="tsd-widget" for="tsd-filter-externals">Externals</label> <input type="checkbox" id="tsd-filter-only-exported" /> <label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label> </div> </div> <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a> </div> </div> </div> </div> <div class="tsd-page-title"> <div class="container"> <ul class="tsd-breadcrumb"> <li> <a href="../globals.html">Globals</a> </li> <li> <a href="recur.html">Recur</a> </li> </ul> <h1>Class Recur</h1> </div> </div> </header> <div class="container container-main"> <div class="row"> <div class="col-8 col-content"> <section class="tsd-panel tsd-comment"> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>The main Recur object to provide an interface for settings, rules, and matching</p> </div> <h2 id="creating-rules">Creating Rules</h2> <p>moment-recur-ts uses rules to define when a date should recur. You can then generate future or past recurrences based on these rules, or see if a specific date matches the rules. Rules can also be overridden or removed.</p> <h3 id="length-intervals">Length Intervals</h3> <p>moment-recur-ts supports intervals for days, weeks, months, and years. Measurements may be singular or plural (ex: <code>day()</code> vs <code>days()</code>). Length Intervals <strong>must</strong> have a start date defined.</p> <p>Possible Length Intervals Include:</p> <ul> <li>day / days</li> <li>week / weeks</li> <li>month / months</li> <li>year / years</li> </ul> <h3 id="calendar-intervals">Calendar Intervals</h3> <p>Calendar Intervals do not depend on a start date. They define a unit of another unit. For instance, a day of a month, or a month of a year. Measurements may be singular or plural (ex: <code>dayOfMonth()</code> vs <code>daysOfMonth()</code>).</p> <p>Possible Calendar Intervals Include:</p> <ul> <li>dayOfWeek / daysOfWeek</li> <li>dayOfMonth / daysOfMonth</li> <li>weekOfMonth / weeksOfMonth</li> <li>weekOfYear / weeksOfYear</li> <li>monthOfYear / monthsOfYear</li> </ul> </div> </section> <section class="tsd-panel tsd-hierarchy"> <h3>Hierarchy</h3> <ul class="tsd-hierarchy"> <li> <span class="target">Recur</span> </li> </ul> </section> <section class="tsd-panel"> <h3>Implements</h3> <ul class="tsd-hierarchy"> <li><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Moment</span><span class="tsd-signature-symbol">&gt;</span></li> </ul> </section> <section class="tsd-panel-group tsd-index-group"> <h2>Index</h2> <section class="tsd-panel tsd-index-panel"> <div class="tsd-index-content"> <section class="tsd-index-section "> <h3>Interfaces</h3> <ul class="tsd-index-list"> <li class="tsd-kind-interface tsd-parent-kind-class"><a href="../interfaces/recur.options.html" class="tsd-kind-icon">Options</a></li> </ul> </section> <section class="tsd-index-section "> <h3>Constructors</h3> <ul class="tsd-index-list"> <li class="tsd-kind-constructor tsd-parent-kind-class"><a href="recur.html#constructor" class="tsd-kind-icon">constructor</a></li> </ul> </section> <section class="tsd-index-section "> <h3>Methods</h3> <ul class="tsd-index-list"> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#___iterator" class="tsd-kind-icon">__@iterator</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#all" class="tsd-kind-icon">all</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#day" class="tsd-kind-icon">day</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#dayofmonth" class="tsd-kind-icon">day<wbr>OfMonth</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#dayofweek" class="tsd-kind-icon">day<wbr>OfWeek</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#days" class="tsd-kind-icon">days</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#daysofmonth" class="tsd-kind-icon">days<wbr>OfMonth</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#daysofweek" class="tsd-kind-icon">days<wbr>OfWeek</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#enddate" class="tsd-kind-icon">end<wbr>Date</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#every" class="tsd-kind-icon">every</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#except" class="tsd-kind-icon">except</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#forget" class="tsd-kind-icon">forget</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#fromdate" class="tsd-kind-icon">from<wbr>Date</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#hasrule" class="tsd-kind-icon">has<wbr>Rule</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#matches" class="tsd-kind-icon">matches</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#maxyears" class="tsd-kind-icon">max<wbr>Years</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#month" class="tsd-kind-icon">month</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#monthofyear" class="tsd-kind-icon">month<wbr>OfYear</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#months" class="tsd-kind-icon">months</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#monthsofyear" class="tsd-kind-icon">months<wbr>OfYear</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#next" class="tsd-kind-icon">next</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#previous" class="tsd-kind-icon">previous</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#repeats" class="tsd-kind-icon">repeats</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#reverse" class="tsd-kind-icon">reverse</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#save" class="tsd-kind-icon">save</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#startdate" class="tsd-kind-icon">start<wbr>Date</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#week" class="tsd-kind-icon">week</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#weekofmonth" class="tsd-kind-icon">week<wbr>OfMonth</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#weekofmonthbyday" class="tsd-kind-icon">week<wbr>OfMonth<wbr>ByDay</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#weekofyear" class="tsd-kind-icon">week<wbr>OfYear</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#weeks" class="tsd-kind-icon">weeks</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#weeksofmonth" class="tsd-kind-icon">weeks<wbr>OfMonth</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#weeksofmonthbyday" class="tsd-kind-icon">weeks<wbr>OfMonth<wbr>ByDay</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#weeksofyear" class="tsd-kind-icon">weeks<wbr>OfYear</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#year" class="tsd-kind-icon">year</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="recur.html#years" class="tsd-kind-icon">years</a></li> </ul> </section> </div> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Constructors</h2> <section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class"> <a name="constructor" class="tsd-anchor"></a> <h3>constructor</h3> <ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">new <wbr>Recur<span class="tsd-signature-symbol">(</span>options<span class="tsd-signature-symbol">: </span><a href="../interfaces/recur.options.html" class="tsd-signature-type">Options</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="recur.html" class="tsd-signature-type">Recur</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L182">recur.ts:182</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <h3 id="recur-object-constrcutor">Recur Object Constrcutor</h3> </div> <p>From an instance of moment:</p> <pre><code class="lang-js"><span class="hljs-keyword">let</span> recurrence; <span class="hljs-comment">// Create a recurrence using today as the start date.</span> recurrence = moment().recur(); <span class="hljs-comment">// Create a recurrence while passing the start and end dates to the recur function.</span> <span class="hljs-comment">// Note: passing an end date requires you to also pass a start date.</span> recurrence = moment().recur( start, end ); <span class="hljs-comment">// You may pass a start date to the moment, or use an existing moment, to set the start date.</span> <span class="hljs-comment">// In this case, passing a date to the recur function sets and end date.</span> recurrence = moment(start).recur( end ); <span class="hljs-comment">// Finally, you can create a recurrence and pass in an entire set of options.</span> recurrence = moment().recur({ <span class="hljs-attr">start</span>: <span class="hljs-string">"01/01/2014"</span>, <span class="hljs-attr">end</span>: <span class="hljs-string">"01/01/2015"</span> }); </code></pre> <p>From static moment:</p> <pre><code class="lang-js"><span class="hljs-comment">// Create recurrence without a start date. Note: this will not work with intervals.</span> recurrence = moment.recur(); <span class="hljs-comment">// Create a recurrence, passing just the start, or the start and end dates.</span> recurrence = moment.recur( start, end ); <span class="hljs-comment">// Create a recurrence, passing set of options.</span> recurrence = moment.recur({ <span class="hljs-attr">start</span>: <span class="hljs-string">"01/01/2014"</span>, <span class="hljs-attr">end</span>: <span class="hljs-string">"01/01/2015"</span> }); </code></pre> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>options: <a href="../interfaces/recur.options.html" class="tsd-signature-type">Options</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <a href="recur.html" class="tsd-signature-type">Recur</a></h4> </li> </ul> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Methods</h2> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="___iterator" class="tsd-anchor"></a> <h3>__@iterator</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">__@iterator<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Moment</span><span class="tsd-signature-symbol">&gt;</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L574">recur.ts:574</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Iterate over moments matched by rules</p> <blockquote> <p>Note if there is no end date, results are unbounded (you must manually terminate the iterator).</p> </blockquote> </div> <blockquote> <p>Also note, this exapmle intentionally ignores some complicated leap year math.</p> </blockquote> <pre><code class="lang-js"><span class="hljs-keyword">let</span> recurrence = moment(<span class="hljs-string">'2012-01'</span>).recur(<span class="hljs-string">'2032-01'</span>).every(<span class="hljs-number">4</span>).years() <span class="hljs-keyword">let</span> leapYears = [...recurrence].map(<span class="hljs-function"><span class="hljs-params">m</span> =&gt;</span> m.year()) <span class="hljs-comment">// leapYears = [ 2012, 2016, 2020, 2024, 2028, 2032 ]</span> </code></pre> <p>Or, this is a bit faster...</p> <pre><code class="lang-js"><span class="hljs-keyword">let</span> recurrence = moment(<span class="hljs-string">'2012-01'</span>).recur(<span class="hljs-string">'2032-01'</span>).every(<span class="hljs-number">4</span>).years() <span class="hljs-keyword">let</span> leapYears = [] <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> date <span class="hljs-keyword">of</span> recurrence) { leapYears.push(date.year()) } <span class="hljs-comment">// leapYears = [ 2012, 2016, 2020, 2024, 2028, 2032 ]</span> </code></pre> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Moment</span><span class="tsd-signature-symbol">&gt;</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="all" class="tsd-anchor"></a> <h3>all</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">all<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Moment</span><span class="tsd-signature-symbol">[]</span></li> <li class="tsd-signature tsd-kind-icon">all<span class="tsd-signature-symbol">(</span>format<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L640">recur.ts:640</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>With both a start date and an end date set, you can generate all dates within that range that match the pattern (including the start/end dates).</p> </div> <pre><code class="lang-js"><span class="hljs-keyword">let</span> recurrence = moment().recur(<span class="hljs-string">"01/01/2014"</span>, <span class="hljs-string">"01/07/2014"</span>).every(<span class="hljs-number">2</span>).days(); <span class="hljs-comment">// Outputs: ["01/01/2014", "01/03/2014", "01/05/2014", "01/07/2014"]</span> allDates = recurrence.all(<span class="hljs-string">"L"</span>); </code></pre> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Moment</span><span class="tsd-signature-symbol">[]</span></h4> </li> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L641">recur.ts:641</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>format: <span class="tsd-signature-type">string</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="day" class="tsd-anchor"></a> <h3>day</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">day<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L48">recur.ts:48</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="dayofmonth" class="tsd-anchor"></a> <h3>day<wbr>OfMonth</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">day<wbr>OfMonth<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L63">recur.ts:63</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="dayofweek" class="tsd-anchor"></a> <h3>day<wbr>OfWeek</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">day<wbr>OfWeek<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L60">recur.ts:60</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="days" class="tsd-anchor"></a> <h3>days</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">days<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L47">recur.ts:47</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="daysofmonth" class="tsd-anchor"></a> <h3>days<wbr>OfMonth</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">days<wbr>OfMonth<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L62">recur.ts:62</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="daysofweek" class="tsd-anchor"></a> <h3>days<wbr>OfWeek</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">days<wbr>OfWeek<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L59">recur.ts:59</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="enddate" class="tsd-anchor"></a> <h3>end<wbr>Date</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">end<wbr>Date<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Moment</span></li> <li class="tsd-signature tsd-kind-icon">end<wbr>Date<span class="tsd-signature-symbol">(</span>date<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MomentInput</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="recur.html" class="tsd-signature-type">Recur</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L288">recur.ts:288</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Get/Set the End Date</p> <pre><code class="lang-js">recurrence.endDate(); <span class="hljs-comment">// Get</span> recurrence.endDate(<span class="hljs-string">"01/01/2014"</span>); <span class="hljs-comment">// Set</span> </code></pre> </div> <dl class="tsd-comment-tags"> <dt>category</dt> <dd><p>getter/setter</p> </dd> </dl> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Moment</span></h4> </li> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L289">recur.ts:289</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>date: <span class="tsd-signature-type">MomentInput</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <a href="recur.html" class="tsd-signature-type">Recur</a></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="every" class="tsd-anchor"></a> <h3>every</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">every<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a>, measure<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#measureinput" class="tsd-signature-type">MeasureInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L424">recur.ts:424</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>The <code>every()</code> function allows you to set the units and, optionally, the measurment type of the recurring date. It returns the recur object to allow chaining.</p> </div> <pre><code class="lang-js"> <span class="hljs-keyword">let</span> myDate, recurrence; <span class="hljs-comment">// Create a date to start from</span> myDate = moment(<span class="hljs-string">"01/01/2014"</span>); <span class="hljs-comment">// You can pass the units to recur on, and the measurement type.</span> recurrence = myDate.recur().every(<span class="hljs-number">1</span>, <span class="hljs-string">"days"</span>); <span class="hljs-comment">// You can also chain the measurement type instead of passing it to every.</span> recurrence = myDate.recur().every(<span class="hljs-number">1</span>).day(); <span class="hljs-comment">// It is also possible to pass an array of units.</span> recurrence = myDate.recur().every([<span class="hljs-number">3</span>, <span class="hljs-number">5</span>]).days(); <span class="hljs-comment">// When using the dayOfWeek measurement, you can pass days names.</span> recurrence = myDate.recur().every([<span class="hljs-string">"Monday"</span>, <span class="hljs-string">"wed"</span>]).daysOfWeek(); <span class="hljs-comment">// Month names also work when using monthOfYear.</span> recurrence = myDate.recur().every([<span class="hljs-string">"Jan"</span>, <span class="hljs-string">"february"</span>], <span class="hljs-string">"monthsOfYear"</span>); </code></pre> <p> <code>every()</code> will override the last &quot;every&quot; if a measurement was not provided. The following line will create a recurrence for every 5 days.</p> <pre><code class="lang-js"> recurrence = myDate.recur().every(<span class="hljs-number">1</span>).every(<span class="hljs-number">5</span>).days(); </code></pre> <p> If you need to specify multiple units, pass an array to <code>every()</code>.</p> <p> You may also pass the units directly to the interval functions (listed below) instead of using <code>every()</code>.</p> <pre><code class="lang-js"> <span class="hljs-keyword">let</span> recurrence = moment.recur().monthOfYear(<span class="hljs-string">"January"</span>); </code></pre> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> measure: <a href="../modules/rule.html#measureinput" class="tsd-signature-type">MeasureInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="except" class="tsd-anchor"></a> <h3>except</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">except<span class="tsd-signature-symbol">(</span>date<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MomentInput</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L463">recur.ts:463</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>To prevent a date from matching that would normally match, use the <code>except()</code> function.</p> <pre><code class="lang-js"><span class="hljs-keyword">let</span> recurrence = moment(<span class="hljs-string">"01/01/2014"</span>).recur().every(<span class="hljs-number">1</span>).day().except(<span class="hljs-string">"01/02/2014"</span>); recurrence.matches(<span class="hljs-string">"01/02/2014"</span>); <span class="hljs-comment">// false</span> </code></pre> </div> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>date: <span class="tsd-signature-type">MomentInput</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="forget" class="tsd-anchor"></a> <h3>forget</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">forget<span class="tsd-signature-symbol">(</span>dateOrRule<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MomentInput</span><span class="tsd-signature-symbol"> | </span><a href="../modules/rule.html#measureinput" class="tsd-signature-type">MeasureInput</a>, format<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L480">recur.ts:480</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Forgets rules (by passing measure) and exceptions (by passing date)</p> <pre><code class="lang-js"><span class="hljs-comment">// Exceptions can be removed by passing a date to the forget() function.</span> recurrence.forget(<span class="hljs-string">"01/03/2014"</span>); </code></pre> <pre><code class="lang-js"><span class="hljs-comment">// Rules can be removed by passing the measurement to the forget() function.</span> recurrence.forget(<span class="hljs-string">"days"</span>); </code></pre> </div> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>dateOrRule: <span class="tsd-signature-type">MomentInput</span><span class="tsd-signature-symbol"> | </span><a href="../modules/rule.html#measureinput" class="tsd-signature-type">MeasureInput</a></h5> </li> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> format: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="fromdate" class="tsd-anchor"></a> <h3>from<wbr>Date</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">from<wbr>Date<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Moment</span></li> <li class="tsd-signature tsd-kind-icon">from<wbr>Date<span class="tsd-signature-symbol">(</span>date<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MomentInput</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="recur.html" class="tsd-signature-type">Recur</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L315">recur.ts:315</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Get/Set a temporary &quot;From Date&quot; for use with generating dates</p> <pre><code class="lang-js">recurrence.fromDate(); <span class="hljs-comment">// Get</span> recurrence.fromDate(<span class="hljs-string">"01/01/2014"</span>); <span class="hljs-comment">// Set</span> </code></pre> </div> <dl class="tsd-comment-tags"> <dt>category</dt> <dd><p>getter/setter</p> </dd> </dl> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Moment</span></h4> </li> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L316">recur.ts:316</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>date: <span class="tsd-signature-type">MomentInput</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <a href="recur.html" class="tsd-signature-type">Recur</a></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="hasrule" class="tsd-anchor"></a> <h3>has<wbr>Rule</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">has<wbr>Rule<span class="tsd-signature-symbol">(</span>measure<span class="tsd-signature-symbol">: </span><a href="../modules/rule.html#measureinput" class="tsd-signature-type">MeasureInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L509">recur.ts:509</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Checks if a rule has been set on the chain</p> </div> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>measure: <a href="../modules/rule.html#measureinput" class="tsd-signature-type">MeasureInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="matches" class="tsd-anchor"></a> <h3>matches</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">matches<span class="tsd-signature-symbol">(</span>dateToMatch<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MomentInput</span>, ignoreStartEnd<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L530">recur.ts:530</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>The <code>matches()</code> function will test a date to check if all of the recurrence rules match. It returns <code>true</code> if the date matches, <code>false</code> otherwise.</p> <pre><code class="lang-js"><span class="hljs-keyword">let</span> interval = moment(<span class="hljs-string">"01/01/2014"</span>).recur().every(<span class="hljs-number">2</span>).days(); interval.matches(<span class="hljs-string">"01/02/2014"</span>); <span class="hljs-comment">// false</span> interval.matches(<span class="hljs-string">"01/03/2014"</span>); <span class="hljs-comment">// true</span> </code></pre> </div> <p>You may also see if a date matches before the start date or after the end date by passing <code>true</code> as the second argument to <code>matches()</code>.</p> <pre><code class="lang-js"><span class="hljs-keyword">let</span> interval = moment(<span class="hljs-string">"01/01/2014"</span>).recur().every(<span class="hljs-number">2</span>).days(); interval.matches(<span class="hljs-string">"12/30/2013"</span>); <span class="hljs-comment">// false</span> interval.matches(<span class="hljs-string">"12/30/2013"</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">// true</span> </code></pre> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>dateToMatch: <span class="tsd-signature-type">MomentInput</span></h5> </li> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> ignoreStartEnd: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="maxyears" class="tsd-anchor"></a> <h3>max<wbr>Years</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">max<wbr>Years<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li> <li class="tsd-signature tsd-kind-icon">max<wbr>Years<span class="tsd-signature-symbol">(</span>years<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="recur.html" class="tsd-signature-type">Recur</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L338">recur.ts:338</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Interval calculations will use a default of 1000 year limit when determining unbounded rules. Use this function to query or change the maximum limit.</p> </div> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4> </li> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L339">recur.ts:339</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>years: <span class="tsd-signature-type">number</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <a href="recur.html" class="tsd-signature-type">Recur</a></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="month" class="tsd-anchor"></a> <h3>month</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">month<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L54">recur.ts:54</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="monthofyear" class="tsd-anchor"></a> <h3>month<wbr>OfYear</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">month<wbr>OfYear<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="recur.html" class="tsd-signature-type">Recur</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/jefbarn/moment-recur-ts/blob/master/src/recur.ts#L78">recur.ts:78</a></li> </ul> </aside> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5><span class="tsd-flag ts-flagOptional">Optional</span> units: <a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <a href="recur.html" class="tsd-signature-type">Recur</a></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="months" class="tsd-anchor"></a> <h3>months</h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">months<span class="tsd-signature-symbol">(</span>units<span class="tsd-signature-symbol">?: </span><a href="../modules/rule.html#unitsinput" class="tsd-signature-type">UnitsInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature