不想仅在 moment.js 中显示当前年份

mrr*_*rsb 5 javascript jquery momentjs

我有这段代码可以将日期转换为可读的时间格式

$('time').each(function (i, e) {

        if ($(e).attr("class") == 'mtime') {

            var now = moment();
            moment.lang('en', {
                calendar : {
                    lastDay : '[Yesterday] LT',
                    sameDay : 'LT',
                    nextDay : '[Tomorrow,] LT',
                    lastWeek : 'ddd LT',
                    nextWeek : 'ddd LT',
                    sameElse : 'MMM D[/]YY' //something to do with this?
                }

            });

            var elem = $(e).attr('datetime');
            var time = moment($(e).attr('datetime'));
            var diff = now.diff(time, 'days');

            $(e).html(time.calendar());

        }

});
Run Code Online (Sandbox Code Playgroud)

返回的输出:

<time class="mtime" datetime="2016-02-26 10:31:22" title="2016-02-26 10:31:22">Feb 26/16</time>
Run Code Online (Sandbox Code Playgroud)

问题是我如何隐藏当前年份。如果是去年,则将其格式化为“M/D/YY”。

预期输出:

- <time>Feb 26</time> <!--// current year -->
- <time>12/25/15</time> <!--// last year -->
- <time>8/1/14</time> <!--// last year -->
Run Code Online (Sandbox Code Playgroud)

请各位大佬指教!TIA

Mac*_*och 5

从版本中2.14.0我们可以将回调传递给特定的时刻上下文:

sameElse: function() {
  if (this.years() === now.years()) {
    return 'MMM D'
  } else {
    return 'M/D/YY';
  }
}
Run Code Online (Sandbox Code Playgroud)

sameElse: function() {
  if (this.years() === now.years()) {
    return 'MMM D'
  } else {
    return 'M/D/YY';
  }
}
Run Code Online (Sandbox Code Playgroud)
$('time').each(function(i, e) {
  if ($(e).attr("class") == 'mtime') {
    var now = moment();
    moment.lang('en', {
      calendar: {
        lastDay: '[Yesterday] LT',
        sameDay: 'LT',
        nextDay: '[Tomorrow,] LT',
        lastWeek: 'ddd LT',
        nextWeek: 'ddd LT',
        sameElse: function() {
          if (this.years() === now.years()) {
            return 'MMM D'
          } else {
            return 'M/D/YY';
          }
        }
      }
    });
    var elem = $(e).attr('datetime');
    var time = moment($(e).attr('datetime'));
    var diff = now.diff(time, 'days');
    $(e).html(time.calendar());
  }
});
Run Code Online (Sandbox Code Playgroud)