【问题标题】:Display 'Today' instead of date显示“今天”而不是日期
【发布时间】:2015-11-21 16:11:33
【问题描述】:

我正在使用 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”?

【问题讨论】:

  • 也许您可以改用“amCalendar”过滤器。或者您创建自己的过滤器以在“amDateFormat”和“amCalendar”之间切换

标签: javascript angularjs momentjs


【解决方案1】:

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

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

然后拨打moment().calendar();

假设您使用的版本至少为 2.10.5,这是一个带有替代方法的 sn-p:

 
  
    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">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    相关资源
    最近更新 更多