【问题标题】:AngularJS: date filter with ISO 8601 datesAngularJS:具有 ISO 8601 日期的日期过滤器
【发布时间】:2015-07-02 20:47:19
【问题描述】:

我从 Angular 文档中注意到,日期过滤器应该适用于格式为 yyyy-MM-ddTHH:mm:ss.sssZ 的 ISO 8601 日期

但是当我尝试以这种格式过滤日期时,我看不出输出有任何差异。这是一个小提琴来证明我的意思http://jsfiddle.net/4zpqj7zb/

<div ng-app="myApp" ng-controller="myCtrl">
Some Date: {{ someDate | date:'dd-MMM-yyyy' }}
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.someDate = "2015-04-30T11:17:983.008Z";
});
</script

为什么我的表达式中没有正确格式化的日期?

我在这里遗漏了什么明显的东西吗?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    您的字符串日期以秒为单位是错误的。你有 sss.sss (983.008) 而它应该是 ss.sss

    JSFiddle

    <div ng-app="myApp" ng-controller="myCtrl">
    
    
    Some Date: {{ someDate | date:'dd-MMM-yyyy' }}
    
    </div>
    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.someDate = "2015-04-30T11:17:58.008Z";
    });
    </script>
    

    【讨论】:

    • 嗯,好吧,我回来的日期字符串来自我不属于的服务器端团队。这是否意味着他们没有使用 ISO 8601 格式的日期?如果是这样,知道我要返回的格式是什么吗?
    • 这意味着他们向您发送了错误的日期字符串,我的意思是他们正在“手动”生成该字符串,可能是因为它不是一种不同的格式,它确实是错误的。 (我会联系他们解释这一点)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2016-03-06
    相关资源
    最近更新 更多