以角度格式化日期

时间:2016-03-10 16:33:56

标签: javascript angularjs

目前,我的Angular代码会显示如下日期:

2016年3月10日

 <span class="num">{{appointment.calendarSlot}}</span>

我想显示这样的日期:

3月25日星期五

我该怎么做?

更新:appointment.calendarSlot是一个字符串,而不是Javascript Date

5 个答案:

答案 0 :(得分:2)

您可以使用以下date filter

 <span class="num">{{ appointment.calendarSlot | date:'EEEE, MMMM d' }}</span>

答案 1 :(得分:1)

试试这个:

https://docs.angularjs.org/api/ng/filter/date

此行适合您:

'fullDate': equivalent to 'EEEE, MMMM d, y' for en_US locale (e.g. Friday, September 3, 2010)

答案 2 :(得分:1)

scope.date = new Date()  // controller


{{date | date:'EEEE, MMMM dd'}} // view

答案 3 :(得分:1)

你可以试试这个

<div ng-app='app' ng-controller="ctrl">
    <span class="num" ng-bind="appointment.calendarSlot | date:'EEEE, MMMM d'"></span>
</div>

JS

var app = angular.module('app', []);

app.controller('ctrl', function($scope) {
    $scope.appointment = {};
    $scope.appointment.calendarSlot = new Date('03/10/2016');
});

在这里工作JSFiddle http://jsfiddle.net/WfuAh/150/

答案 4 :(得分:1)

为了使其最灵活,我会为您的应用添加一个自定义过滤器,将字符串转换为日期,然后您可以使用内置的Angular日期格式过滤器。

.filter("asDate", function() {
    return function(input) {
        return Date.parse(input);
    }
})

然后你的标记变成:

<span class="num">{{ appointment.calendarSlot | asDate | date:'EEEE, MMMM d' }}</span>