显示 'Today' 而不是日期

Display 'Today' instead of date

我正在使用 angular 和 moment.js 在我的应用程序中显示日期。如果用户选择今天以外的日期,我希望格式为“11 月 21 日星期六下午 12:00”,当用户使用 amDateFormat 从我的日历中单击一天时,我正在工作 以下:

$scope.setDate = function(day){
    var myDate = day.date;
    $scope.date = moment($scope.date).set(
    {
        'year': myDate.year(), 
        'month': myDate.month(), 
        'date': myDate.date()
    }).toDate();
}

<div> {{ date | amDateFormat:'h:mm A ddd Do MMM'}}</div>

如果选择的日期是今天,我如何将日期显示为“今天中午 12:00”?

我不熟悉angular。但是,您可以将时刻日历用于今天的日期。 在 doc 中,您可以像这样调整日历:

moment.locale('en', {
    calendar : {
        sameDay : 'LT [Today]'
    }
});

然后调用moment().calendar();

假设您使用的版本至少为 2.10.5,这里有一个片段,其中包含另一种方法:

 
  
    var divTime = $('#time');
    var time = moment().calendar(null, {
      sameDay: 'LT [Today]'
    });
    divTime.text(time);
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
<div id="time">