]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Adding documentation for moment.fn.calendar
authorTim Wood <washwithcare@gmail.com>
Wed, 21 Dec 2011 17:56:01 +0000 (09:56 -0800)
committerTim Wood <washwithcare@gmail.com>
Wed, 21 Dec 2011 17:56:01 +0000 (09:56 -0800)
#102

site/docs/index.html
sitesrc/docs.jade

index 5fc8d52b73b7cb8238f3147dccdb0c59eb5c50b0..adb4d4785091be423b8f380034ef96755dbe8262 100644 (file)
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><link href="http://fonts.googleapis.com/css?family=Oswald" rel="stylesheet"><link rel="stylesheet" href="../css/style.css?_=nocachebuster"><title>Moment.js Documentation</title></head><body><div id="navwrap"><div id="nav"><h1>Moment.js</h1><ul><li><a href="/" class="btn clean-gray">Home</a></li><li><a href="/docs/" class="btn clean-gray">Documentation</a></li><li><a href="/test/" class="btn clean-gray">Unit Tests</a></li><li><a href="https://github.com/timrwood/moment" class="btn clean-gray">Github</a></li></ul></div></div><div id="content"><div id="docnav"><h2><a href="#/get-it"><span>Get it</span></a></h2><ul><li><a href="#/get-it/github">Github</a></li><li><a href="#/get-it/npm">npm</a></li></ul><h2><a href="#/use-it"><span>Use it</span></a></h2><ul><li><a href="#/use-it/node">In NodeJS</a></li><li><a href="#/use-it/browser">In the browser</a></li></ul><h2><a href="#/parsing"><span>Parsing</span></a></h2><ul><li><a href="#/parsing/date">Javascript Date Object</a></li><li><a href="#/parsing/unix">Unix Timestamp</a></li><li><a href="#/parsing/string">String</a></li><li><a href="#/parsing/string+format">String + Format</a></li><li><a href="#/parsing/string+formats">String + Formats</a></li><li><a href="#/parsing/now">Now</a></li><li><a href="#/parsing/array">Javascript Array</a></li></ul><h2><a href="#/manipulation"><span>Manipulation</span></a></h2><ul><li><a href="#/manipulation/add">Add</a></li><li><a href="#/manipulation/subtract">Subtract</a></li><li><a href="#/manipulation/milliseconds">Milliseconds</a></li><li><a href="#/manipulation/seconds">Seconds</a></li><li><a href="#/manipulation/minutes">Minutes</a></li><li><a href="#/manipulation/hours">Hours</a></li><li><a href="#/manipulation/date">Date</a></li><li><a href="#/manipulation/month">Month</a></li><li><a href="#/manipulation/year">Year</a></li></ul><h2><a href="#/display"><span>Display</span></a></h2><ul><li><a href="#/display/format">Formatted date</a></li><li><a href="#/display/from">Time from another moment</a></li><li><a href="#/display/fromNow">Time from now</a></li><li><a href="#/display/diff">Difference</a></li><li><a href="#/display/native">Native Date</a></li><li><a href="#/display/valueOf">Value</a></li><li><a href="#/display/milliseconds">Milliseconds</a></li><li><a href="#/display/seconds">Seconds</a></li><li><a href="#/display/minutes">Minutes</a></li><li><a href="#/display/hours">Hours</a></li><li><a href="#/display/date">Date</a></li><li><a href="#/display/day">Day</a></li><li><a href="#/display/month">Month</a></li><li><a href="#/display/year">Year</a></li><li><a href="#/display/leapyear">Leap Year</a></li><li><a href="#/display/zone">Timezone Offset</a></li><li><a href="#/display/dst">Daylight Savings Time</a></li></ul><h2><a href="#/i18n"><span>I18N</span></a></h2><ul><li><a href="#/i18n/lang">Changing languages</a></li><li><a href="#/i18n/node">Loading languages in NodeJS</a></li><li><a href="#/i18n/browser">Loading languages in the browser</a></li><li><a href="#/i18n/add">Adding your language to Moment.js</a></li></ul><h2><a href="#/custom"><span>I18N</span></a></h2><ul><li><a href="#/custom/months">Month Names</a></li><li><a href="#/custom/monthsShort">Month Abbreviations</a></li><li><a href="#/custom/weekdays">Weekday Names</a></li><li><a href="#/custom/weekdaysShort">Weekday Abbreviations</a></li><li><a href="#/custom/longDateFormats">Long Date Formats</a></li><li><a href="#/custom/relativeTime">Relative Time</a></li><li><a href="#/custom/meridiem">AM/PM</a></li><li><a href="#/custom/ordinal">Ordinal</a></li></ul></div><div id="docs"><h1>Moment.js Documentation</h1><p>A lightweight javascript date library for parsing, manipulating, and formatting dates.</p><a name="/get-it"></a><h2><span>Where to get it</span></h2><a name="/get-it/github"></a><h3><span>Github</span></h3><a href="https://raw.github.com/timrwood/moment/1.2.0/moment.min.js" class="btn cupid-green"><strong>Production </strong><span class="version">Version 1.2.0</span><span class="filesize">3.1kb minified &amp; gzipped</span></a><a href="https://raw.github.com/timrwood/moment/1.2.0/moment.js" class="btn minimal"><strong>Development </strong><span class="version">Version 1.2.0</span><span class="filesize">21.2kb full source + comments</span></a><p>You can also clone the project with Git by running:</p><pre>git clone git://github.com/timrwood/moment</pre><a name="/get-it/npm"></a><h3><span>npm</span></h3><pre>npm install moment</pre><a name="/use-it"></a><h2><span>Where to use it</span></h2><p>Moment was designed to work in both the browser and in NodeJS. All code will work in both environments. All unit tests are run in both environments.</p><a name="/use-it/node"></a><h3><span>In NodeJS</span></h3><pre>var moment = require('moment');
+<!DOCTYPE html><html><head><meta charset="utf-8"><link href="http://fonts.googleapis.com/css?family=Oswald" rel="stylesheet"><link rel="stylesheet" href="../css/style.css?_=nocachebuster"><title>Moment.js Documentation</title></head><body><div id="navwrap"><div id="nav"><h1>Moment.js</h1><ul><li><a href="/" class="btn clean-gray">Home</a></li><li><a href="/docs/" class="btn clean-gray">Documentation</a></li><li><a href="/test/" class="btn clean-gray">Unit Tests</a></li><li><a href="https://github.com/timrwood/moment" class="btn clean-gray">Github</a></li></ul></div></div><div id="content"><div id="docnav"><h2><a href="#/get-it"><span>Get it</span></a></h2><ul><li><a href="#/get-it/github">Github</a></li><li><a href="#/get-it/npm">npm</a></li></ul><h2><a href="#/use-it"><span>Use it</span></a></h2><ul><li><a href="#/use-it/node">In NodeJS</a></li><li><a href="#/use-it/browser">In the browser</a></li></ul><h2><a href="#/parsing"><span>Parsing</span></a></h2><ul><li><a href="#/parsing/date">Javascript Date Object</a></li><li><a href="#/parsing/unix">Unix Timestamp</a></li><li><a href="#/parsing/string">String</a></li><li><a href="#/parsing/string+format">String + Format</a></li><li><a href="#/parsing/string+formats">String + Formats</a></li><li><a href="#/parsing/now">Now</a></li><li><a href="#/parsing/array">Javascript Array</a></li></ul><h2><a href="#/manipulation"><span>Manipulation</span></a></h2><ul><li><a href="#/manipulation/add">Add</a></li><li><a href="#/manipulation/subtract">Subtract</a></li><li><a href="#/manipulation/milliseconds">Milliseconds</a></li><li><a href="#/manipulation/seconds">Seconds</a></li><li><a href="#/manipulation/minutes">Minutes</a></li><li><a href="#/manipulation/hours">Hours</a></li><li><a href="#/manipulation/date">Date</a></li><li><a href="#/manipulation/month">Month</a></li><li><a href="#/manipulation/year">Year</a></li></ul><h2><a href="#/display"><span>Display</span></a></h2><ul><li><a href="#/display/format">Formatted date</a></li><li><a href="#/display/from">Time from another moment</a></li><li><a href="#/display/fromNow">Time from now</a></li><li><a href="#/display/calendar">Calendar time</a></li><li><a href="#/display/diff">Difference</a></li><li><a href="#/display/native">Native Date</a></li><li><a href="#/display/valueOf">Value</a></li><li><a href="#/display/milliseconds">Milliseconds</a></li><li><a href="#/display/seconds">Seconds</a></li><li><a href="#/display/minutes">Minutes</a></li><li><a href="#/display/hours">Hours</a></li><li><a href="#/display/date">Date</a></li><li><a href="#/display/day">Day</a></li><li><a href="#/display/month">Month</a></li><li><a href="#/display/year">Year</a></li><li><a href="#/display/leapyear">Leap Year</a></li><li><a href="#/display/zone">Timezone Offset</a></li><li><a href="#/display/dst">Daylight Savings Time</a></li></ul><h2><a href="#/i18n"><span>I18N</span></a></h2><ul><li><a href="#/i18n/lang">Changing languages</a></li><li><a href="#/i18n/node">Loading languages in NodeJS</a></li><li><a href="#/i18n/browser">Loading languages in the browser</a></li><li><a href="#/i18n/add">Adding your language to Moment.js</a></li></ul><h2><a href="#/custom"><span>I18N</span></a></h2><ul><li><a href="#/custom/months">Month Names</a></li><li><a href="#/custom/monthsShort">Month Abbreviations</a></li><li><a href="#/custom/weekdays">Weekday Names</a></li><li><a href="#/custom/weekdaysShort">Weekday Abbreviations</a></li><li><a href="#/custom/longDateFormats">Long Date Formats</a></li><li><a href="#/custom/relativeTime">Relative Time</a></li><li><a href="#/custom/meridiem">AM/PM</a></li><li><a href="#/custom/calendar">Calendar</a></li><li><a href="#/custom/ordinal">Ordinal</a></li></ul></div><div id="docs"><h1>Moment.js Documentation</h1><p>A lightweight javascript date library for parsing, manipulating, and formatting dates.</p><a name="/get-it"></a><h2><span>Where to get it</span></h2><a name="/get-it/github"></a><h3><span>Github</span></h3><a href="https://raw.github.com/timrwood/moment/1.2.0/moment.min.js" class="btn cupid-green"><strong>Production </strong><span class="version">Version 1.2.0</span><span class="filesize">3.1kb minified &amp; gzipped</span></a><a href="https://raw.github.com/timrwood/moment/1.2.0/moment.js" class="btn minimal"><strong>Development </strong><span class="version">Version 1.2.0</span><span class="filesize">21.2kb full source + comments</span></a><p>You can also clone the project with Git by running:</p><pre>git clone git://github.com/timrwood/moment</pre><a name="/get-it/npm"></a><h3><span>npm</span></h3><pre>npm install moment</pre><a name="/use-it"></a><h2><span>Where to use it</span></h2><p>Moment was designed to work in both the browser and in NodeJS. All code will work in both environments. All unit tests are run in both environments.</p><a name="/use-it/node"></a><h3><span>In NodeJS</span></h3><pre>var moment = require('moment');
 moment().add('hours', 1).fromNow(); // &quot;1 hour ago&quot;
 </pre><a name="/use-it/browser"></a><h3><span>In the browser</span></h3><pre>&lt;script src="moment.min.js">&lt;/script>
 moment().add('hours', 1).fromNow(); // &quot;1 hour ago&quot;
@@ -53,7 +53,7 @@ moment().milliseconds() === new Date().getMilliseconds();
 </p><pre>var date = new Date(2010, 1, 14, 15, 25, 50, 125);
 moment(date).format(&quot;dddd, MMMM Do YYYY, h:mm:ss a&quot;); // &quot;Sunday, February 14th 2010, 3:25:50 pm&quot;
 moment(date).format(&quot;ddd, hA&quot;);                       // &quot;Sun, 3PM&quot;
-</pre><table><tbody><tr><th>Token</th><th>Output</th></tr><tr><td><b>Month</b></td><td></td></tr><tr><td>M</td><td>1 2 ... 11 12</td></tr><tr><td>Mo</td><td>1st 2nd ... 11th 12th</td></tr><tr><td>MM</td><td>01 02 ... 11 12</td></tr><tr><td>MMM</td><td>Jan Feb ... Nov Dec</td></tr><tr><td>MMMM</td><td>January February ... November December</td></tr><tr><td><b>Day of Month</b></td><td></td></tr><tr><td>D</td><td>1 2 ... 30 30</td></tr><tr><td>Do</td><td>1st 2nd ... 30th 31st</td></tr><tr><td>DD</td><td>01 02 ... 30 31</td></tr><tr><td><b>Day of Year</b></td><td></td></tr><tr><td>DDD</td><td>1 2 ... 364 365</td></tr><tr><td>DDDo</td><td>1st 2nd ... 364th 365th</td></tr><tr><td>DDDD</td><td>001 002 ... 364 365</td></tr><tr><td><b>Day of Week</b></td><td></td></tr><tr><td>d</td><td>0 1 ... 5 6</td></tr><tr><td>do</td><td>0th 1st ... 5th 6th</td></tr><tr><td>ddd</td><td>Sun Mon ... Fri Sat</td></tr><tr><td>dddd</td><td>Sunday Monday ... Friday Saturday</td></tr><tr><td><b>Week of Year</b></td><td></td></tr><tr><td>w</td><td>1 2 ... 52 53</td></tr><tr><td>wo</td><td>1st 2nd ... 52nd 53rd</td></tr><tr><td>ww</td><td>01 02 ... 52 53</td></tr><tr><td><b>Year</b></td><td></td></tr><tr><td>YY</td><td>70 71 ... 29 30</td></tr><tr><td>YYYY</td><td>1970 1971 ... 2029 2030</td></tr><tr><td><b>AM/PM</b></td><td></td></tr><tr><td>A</td><td>AM PM</td></tr><tr><td>a</td><td>am pm</td></tr><tr><td><b>Hour</b></td><td></td></tr><tr><td>H</td><td>0 1 ... 22 23</td></tr><tr><td>HH</td><td>00 01 ... 22 23</td></tr><tr><td>h</td><td>1 2 ... 11 12</td></tr><tr><td>hh</td><td>01 02 ... 11 12</td></tr><tr><td><b>Minute</b></td><td></td></tr><tr><td>m</td><td>0 1 ... 58 59</td></tr><tr><td>mm</td><td>00 01 ... 58 59</td></tr><tr><td><b>Second</b></td><td></td></tr><tr><td>s</td><td>0 1 ... 58 59</td></tr><tr><td>ss</td><td>00 01 ... 58 59</td></tr><tr><td><b>Timezone</b></td><td></td></tr><tr><td>z or zz (lowercase)</td><td>EST CST ... MST PST</td></tr><tr><td>Z</td><td>-07:00 -06:00 ... +06:00 +07:00</td></tr><tr><td>ZZ</td><td>-0700 -0600 ... +0600 +0700</td></tr><tr><td><b>Localized date format</b></td><td></td></tr><tr><td>L</td><td>07/10/1986</td></tr><tr><td>LL</td><td>July 10 1986</td></tr><tr><td>LLL</td><td>July 10 1986 8:30 PM</td></tr><tr><td>LLLL</td><td>Saturday, July 10 1986 8:30 PM</td></tr></tbody></table><p>To escape characters in format strings, you can use a backslash before any character. NOTE: if you are using a string literal, you will need to escape the backslash, hence the double backslash below.</p><pre>moment().format('\\L'); // outputs 'L'</pre><p>To escape multiple characters, you can wrap the characters in square brackets.</p><pre>moment().format('[today] DDDD'); // 'today Sunday'</pre><p>While these date formats are very similar to LDML date formats, there are a few minor differences regarding day of month, day of year, and day of week.</p><p>For a breakdown of a few different date formatting tokens, see <a href="https://docs.google.com/spreadsheet/ccc?key=0AtgZluze7WMJdDBOLUZfSFIzenIwOHNjaWZoeGFqbWc&amp;hl=en_US#gid=0">this chart of date formatting tokens.</a></p><p>To compare moment.js date formatting speeds against other libraries, check out <a href="http://jsperf.com/date-formatting">http://jsperf.com/date-formatting</a> .
+</pre><table><tbody><tr><th>Token</th><th>Output</th></tr><tr><td><b>Month</b></td><td></td></tr><tr><td>M</td><td>1 2 ... 11 12</td></tr><tr><td>Mo</td><td>1st 2nd ... 11th 12th</td></tr><tr><td>MM</td><td>01 02 ... 11 12</td></tr><tr><td>MMM</td><td>Jan Feb ... Nov Dec</td></tr><tr><td>MMMM</td><td>January February ... November December</td></tr><tr><td><b>Day of Month</b></td><td></td></tr><tr><td>D</td><td>1 2 ... 30 30</td></tr><tr><td>Do</td><td>1st 2nd ... 30th 31st</td></tr><tr><td>DD</td><td>01 02 ... 30 31</td></tr><tr><td><b>Day of Year</b></td><td></td></tr><tr><td>DDD</td><td>1 2 ... 364 365</td></tr><tr><td>DDDo</td><td>1st 2nd ... 364th 365th</td></tr><tr><td>DDDD</td><td>001 002 ... 364 365</td></tr><tr><td><b>Day of Week</b></td><td></td></tr><tr><td>d</td><td>0 1 ... 5 6</td></tr><tr><td>do</td><td>0th 1st ... 5th 6th</td></tr><tr><td>ddd</td><td>Sun Mon ... Fri Sat</td></tr><tr><td>dddd</td><td>Sunday Monday ... Friday Saturday</td></tr><tr><td><b>Week of Year</b></td><td></td></tr><tr><td>w</td><td>1 2 ... 52 53</td></tr><tr><td>wo</td><td>1st 2nd ... 52nd 53rd</td></tr><tr><td>ww</td><td>01 02 ... 52 53</td></tr><tr><td><b>Year</b></td><td></td></tr><tr><td>YY</td><td>70 71 ... 29 30</td></tr><tr><td>YYYY</td><td>1970 1971 ... 2029 2030</td></tr><tr><td><b>AM/PM</b></td><td></td></tr><tr><td>A</td><td>AM PM</td></tr><tr><td>a</td><td>am pm</td></tr><tr><td><b>Hour</b></td><td></td></tr><tr><td>H</td><td>0 1 ... 22 23</td></tr><tr><td>HH</td><td>00 01 ... 22 23</td></tr><tr><td>h</td><td>1 2 ... 11 12</td></tr><tr><td>hh</td><td>01 02 ... 11 12</td></tr><tr><td><b>Minute</b></td><td></td></tr><tr><td>m</td><td>0 1 ... 58 59</td></tr><tr><td>mm</td><td>00 01 ... 58 59</td></tr><tr><td><b>Second</b></td><td></td></tr><tr><td>s</td><td>0 1 ... 58 59</td></tr><tr><td>ss</td><td>00 01 ... 58 59</td></tr><tr><td><b>Timezone</b></td><td></td></tr><tr><td>z or zz (lowercase)</td><td>EST CST ... MST PST</td></tr><tr><td>Z</td><td>-07:00 -06:00 ... +06:00 +07:00</td></tr><tr><td>ZZ</td><td>-0700 -0600 ... +0600 +0700</td></tr><tr><td><b>Localized date format</b></td><td></td></tr><tr><td>LT</td><td>8:30 PM</td></tr><tr><td>L</td><td>07/10/1986</td></tr><tr><td>LL</td><td>July 10 1986</td></tr><tr><td>LLL</td><td>July 10 1986 8:30 PM</td></tr><tr><td>LLLL</td><td>Saturday, July 10 1986 8:30 PM</td></tr></tbody></table><p>To escape characters in format strings, you can use a backslash before any character. NOTE: if you are using a string literal, you will need to escape the backslash, hence the double backslash below.</p><pre>moment().format('\\L'); // outputs 'L'</pre><p>To escape multiple characters, you can wrap the characters in square brackets.</p><pre>moment().format('[today] DDDD'); // 'today Sunday'</pre><p>While these date formats are very similar to LDML date formats, there are a few minor differences regarding day of month, day of year, and day of week.</p><p>For a breakdown of a few different date formatting tokens, see <a href="https://docs.google.com/spreadsheet/ccc?key=0AtgZluze7WMJdDBOLUZfSFIzenIwOHNjaWZoeGFqbWc&amp;hl=en_US#gid=0">this chart of date formatting tokens.</a></p><p>To compare moment.js date formatting speeds against other libraries, check out <a href="http://jsperf.com/date-formatting">http://jsperf.com/date-formatting</a> .
 </p><p>Note: Baron Schwartz wrote a pretty cool date formatter that caches formatting functions to avoid expensive regex or string splitting. It's so much faster than any of the other libraries, that it's best to compare it on its own, rather than pollute the "best of the uncompiled" formatting libs.</p><p>Here's the <a href="http://jsperf.com/momentjs-vs-xaprb">moment.js vs xaprb</a> performance tests, and here is the
 <a href="http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/">article describing his methods.</a></p><a name="/display/from"></a><h3><span>Time from another moment</span></h3><p>Another common way of displaying time, sometimes called timeago, is handled by <code>moment.fn.from</code>.
 </p><pre>var a = moment([2007, 0, 29]);
@@ -82,8 +82,13 @@ start.from(end, true); // &quot;5 days&quot;
 <code>true</code>as the second parameter, you can get the value without the suffix.
 </p><pre>moment([2007, 0, 29]).fromNow();     // 4 years ago
 moment([2007, 0, 29]).fromNow(true); // 4 years
-</pre><a name="/display/diff"></a><h3><span>Difference<p>To get the difference in milliseconds, use <code>moment.fn.diff</code> like you would use <code>moment.fn.from</code>.</p>
-</span></h3><pre>var a = moment([2007, 0, 29]);
+</pre><a name="/display/calendar"></a><h3><span>Calendar time</span></h3><p>Calendar time is displays time relative to now, but slightly differently than <code>moment.fn.from</code>.
+</p><p><code>moment.fn.calendar</code> will format a date with different strings depending on how close to today the date is.
+</p><table><tr><td>Last week</td><td>Last Monday 2:30 AM</td></tr><tr><td>The day before</td><td>Yesterday 2:30 AM</td></tr><tr><td>The same day</td><td>Today 2:30 AM</td></tr><tr><td>The next day</td><td>Tomorrow 2:30 AM</td></tr><tr><td>The next week</td><td>Sunday 2:30 AM</td></tr><tr><td>Everything else</td><td>7/10/2011</td></tr></table><p>These strings are localized, and can be customized with <a href="#/custom/calendar">moment.calendar</a> or 
+<a href="#/i18n/lang">moment.lang</a>.
+</p><a name="/display/diff"></a><h3><span>Difference</span></h3><p>To get the difference in milliseconds, use <code>moment.fn.diff</code> like you would use 
+<code>moment.fn.from</code>.
+</p><pre>var a = moment([2007, 0, 29]);
 var b = moment([2007, 0, 28]);
 a.diff(b) // 86400000
 </pre><p>To get the difference in another unit of measurement, pass that measurement as the second argument.</p><pre>var a = moment([2007, 0, 29]);
@@ -125,6 +130,14 @@ moment([2011, 2, 14]).isDST(); // true, March 14 2011 is DST
         PM : 'PM',
         pm : 'pm'
     },
+    calendar : {
+        sameDay: &quot;[Ajourd'hui à] LT&quot;,
+        nextDay: '[Demain à] LT',
+        nextWeek: 'dddd [à] LT',
+        lastDay: '[Hier à] LT',
+        lastWeek: 'dddd [denier à] LT',
+        sameElse: 'L'
+    },
     relativeTime : {
         future : &quot;in %s&quot;,
         past : &quot;il y a %s&quot;,
@@ -212,6 +225,15 @@ moment(1316116057189).fromNow(); // il y a une heure
     pm : 'pm',
     PM : 'PM'
 };
+</pre><a name="/custom/calendar"></a><h3><span>Calendar</span></h3><p><code>moment.calendar</code> should have the following formatting strings.
+</p><pre>moment.meridiem = {
+    lastDay : '[Yesterday at] LT',
+    sameDay : '[Today at] LT',
+    nextDay : '[Tomorrow at] LT',
+    lastWeek : '[last] dddd [at] LT',
+    nextWeek : 'dddd [at] LT',
+    sameElse : 'L'
+};
 </pre><a name="/custom/ordinal"></a><h3><span>Ordinal</span></h3><p><code>moment.ordinal</code> should be a function that returns the ordinal for a given number.
 </p><pre>moment.ordinal = function (number) {
     var b = number % 10;
index 2d167ee3e50de3c91669ada05e28af5b9c71bdb8..0d8eb9e27d60231cfe5e67f4f491768f94122005 100644 (file)
@@ -75,6 +75,8 @@ block content
           a(href="#/display/from") Time from another moment
         li
           a(href="#/display/fromNow") Time from now
+        li
+          a(href="#/display/calendar") Calendar time
         li
           a(href="#/display/diff") Difference
         li
@@ -133,6 +135,8 @@ block content
           a(href="#/custom/relativeTime") Relative Time
         li
           a(href="#/custom/meridiem") AM/PM
+        li
+          a(href="#/custom/calendar") Calendar
         li
           a(href="#/custom/ordinal") Ordinal
     #docs
@@ -634,6 +638,9 @@ block content
             td
               b Localized date format
             td
+          tr
+            td LT
+            td 8:30 PM
           tr
             td L
             td 07/10/1986
@@ -769,10 +776,49 @@ block content
         | moment([2007, 0, 29]).fromNow(true); // 4 years
 
 
+      a(name="/display/calendar")
+      h3
+        span Calendar time
+      p Calendar time is displays time relative to now, but slightly differently than 
+        code moment.fn.from
+        | .
+      p 
+        code moment.fn.calendar
+        |  will format a date with different strings depending on how close to today the date is.
+      table
+        tr
+          td Last week
+          td Last Monday 2:30 AM
+        tr
+          td The day before
+          td Yesterday 2:30 AM
+        tr
+          td The same day
+          td Today 2:30 AM
+        tr
+          td The next day
+          td Tomorrow 2:30 AM
+        tr
+          td The next week
+          td Sunday 2:30 AM
+        tr
+          td Everything else
+          td 7/10/2011
+      p These strings are localized, and can be customized with 
+        a(href="#/custom/calendar") moment.calendar
+        |  or 
+        a(href="#/i18n/lang") moment.lang
+        | .
+
+
       a(name="/display/diff")
       h3
         span Difference
-            <p>To get the difference in milliseconds, use <code>moment.fn.diff</code> like you would use <code>moment.fn.from</code>.</p>
+      p To get the difference in milliseconds, use 
+        code moment.fn.diff
+        |  like you would use 
+        code moment.fn.from
+        | .
       pre var a = moment([2007, 0, 29]);\n
         | var b = moment([2007, 0, 28]);
         | a.diff(b) // 86400000
@@ -926,6 +972,14 @@ block content
         |         PM : 'PM',
         |         pm : 'pm'
         |     },
+        |     calendar : {
+        |         sameDay: "[Ajourd'hui à] LT",
+        |         nextDay: '[Demain à] LT',
+        |         nextWeek: 'dddd [à] LT',
+        |         lastDay: '[Hier à] LT',
+        |         lastWeek: 'dddd [denier à] LT',
+        |         sameElse: 'L'
+        |     },
         |     relativeTime : {
         |         future : "in %s",
         |         past : "il y a %s",
@@ -1122,6 +1176,23 @@ block content
         |     PM : 'PM'
         | };
 
+
+      a(name="/custom/calendar")
+      h3
+        span Calendar
+      p
+        code moment.calendar
+        |  should have the following formatting strings.
+      pre moment.meridiem = {\n
+        |     lastDay : '[Yesterday at] LT',
+        |     sameDay : '[Today at] LT',
+        |     nextDay : '[Tomorrow at] LT',
+        |     lastWeek : '[last] dddd [at] LT',
+        |     nextWeek : 'dddd [at] LT',
+        |     sameElse : 'L'
+        | };
+
+
       a(name="/custom/ordinal")
       h3
         span Ordinal