仅使用angularjs将Sql Date Value格式化为Date

时间:2017-10-04 03:01:00

标签: angularjs date

在我的Sql Server中,我有一个具有date数据类型的列,这里是一个示例2017-09-28。我用它作为显示格式创建了一个模型:

[Display(Name = "Enroll Date")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime CreationDate { get; set; }

和我的角度控制器中的控制器:

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

app.controller("PdfController", function($scope, $http) {
    $scope.message = "";
    $scope.records = null;
    $http({
        method: 'GET',
        url: '/Pdf/GetData'
    }).then(function(result) {
            $scope.records = result.data;
        },
    function(error) {
        $scope.message = "Error in retrieving data @error: " + error;
    });
})

然后在我看来,我像这样使用了ng-repeat:

<tr ng-repeat="record in records">
    <td>{{record.Id}}</td>
    <td>{{record.RfidNumber}}</td>
    <td>{{record.RfidTag}}</td>
    <td>{{record.AccountName}}</td>
    <td>{{record.CreationDate | date:'dd/MM/yyyy'}}</td>
    <td>{{record.EncodedBy}}</td>
</tr>

为什么在我的表格中我得到了这个值/Date(1506528000000)/而我无法将其格式化为dd/MM/yyyy?我尝试将我的模型设置为public string CreationDate { get; set; }。它给了我日期,但12:00 AM,我不需要时间。你能帮帮忙吗?谢谢。

1 个答案:

答案 0 :(得分:1)

在回复中,您将日期视为json格式。您可以创建自定义过滤器以将json日期格式转换为日期。

.filter("filterdate", function() {
    var re = /\/Date\(([0-9]*)\)\//;
    return function(x) {
        var m = x.match(re);
        if( m ) return new Date(parseInt(m[1]));
        else return null;
    };
});

在html中添加过滤器

<td>{{record.CreationDate | filterdate | date:'dd/MM/yyyy'}}</td>