From: Kushan Joshi <0o3ko0@gmail.com> Date: Wed, 21 Oct 2015 08:18:57 +0000 (+0530) Subject: Allow calendar to use functions X-Git-Tag: 2.11.0~39^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c6e9056488ac4a77535abd3696043bc17961ef61;p=thirdparty%2Fmoment.git Allow calendar to use functions --- diff --git a/src/lib/moment/calendar.js b/src/lib/moment/calendar.js index c9df80311..6480c862e 100644 --- a/src/lib/moment/calendar.js +++ b/src/lib/moment/calendar.js @@ -13,5 +13,8 @@ export function calendar (time, formats) { diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse'; - return this.format(formats && formats[format] || this.localeData().calendar(format, this, createLocal(now))); + + var output = formats && (typeof formats[format] === 'function' ? formats[format]() : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, createLocal(now))); } diff --git a/src/test/moment/calendar.js b/src/test/moment/calendar.js new file mode 100644 index 000000000..d388c4172 --- /dev/null +++ b/src/test/moment/calendar.js @@ -0,0 +1,17 @@ +// These tests are for locale independent features +// locale dependent tests would be in locale test folder +import { module, test } from '../qunit'; +import moment from '../../moment'; + +module('calendar'); + +test('passing a function', function (assert) { + var a = moment().hours(2).minutes(0).seconds(0); + assert.equal(moment(a).calendar(null, { + 'sameDay': function () { + return 'h:mmA'; + } + }), '2:00AM', 'should equate'); +}); + +