在AngularJS中仅显示日期

时间:2015-09-07 10:02:04

标签: javascript html angularjs

我有一个像这样的JSON数组:

[
{
    "user": "345",
    "createdOn": "2015-09-01 13:17:22"
},
{
    "user": "432",
    "createdOn": "2015-09-01 13:27:56"
}

<div>标签中,我这样做:

 <div> class="row" ng-repeat="item in array"             
         {{item.createdOn}}
 </div>     

输出结果是:2015-09-01 13:50:59,但我不希望时间部分显示,即所需的输出只是2015-09-01。 我尝试使用filter但未成功。请给我一些相关的知识。

5 个答案:

答案 0 :(得分:3)

如果你的对象是从db中获取数据并且正确返回了时间戳,并且你的日期被格式化为'yyyy-MM-dd',那么这应该可行。

{{item.createdOn| date:'yyyy-MM-dd'}}

否则,将字符串格式化为Date。 (这在其他答案中有详细说明。)

答案 1 :(得分:1)

您需要使用Angular过滤器但Date过滤器仅适用于Date对象,因此首先需要将字符串转换为Date对象。

int f();
...
int x = f(); //the returned int is an r-value, but x is an l-value

控制器:

#columns {
  background: #141;
}

#columns #main {
  margin-left: 17em;
  padding: 1em;
  background: white;
}

Plunker

答案 2 :(得分:1)

答案简短:

Angular中的日期过滤器可以更好地与 Date 对象配合使用。

请运行此代码段:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app=app ng-controller=a>
{{a|date:'mm-dd-yy'}}
 <hr>
  {{b|date:'mm-dd-yy'}}
 </div>
var obj=    [{
    "user": "345",
    "createdOn": new Date("2015-09-01 13:17:22")
},
{
    "user": "432",
    "createdOn": new Date("2015-09-01 13:27:56")
}
]

这是您的代码修复:

for(var i=0;i<obj.length;i++) obj[i].createdOn=new Date(obj[i].createdOn)

您可以看到当我使用日期对象时它可以工作的示例。

如果从外部源获取对象,则可以将其转换为Date对象。使用此代码:

SerialPort

答案 3 :(得分:1)

在这种情况下,您可以创建自己的自定义过滤器,

试试这个,

HTML:

<div ng-controller="MainCtrl">
    <div ng-repeat="data in datas">
        {{data.createdOn | dateOnly}}
    </div>
</div>

angularjs:

angular.module("myapp", []).controller('MainCtrl', ["$scope", function($scope){
    var data = [
    {
        "user": "345",
        "createdOn": "2015-09-01 13:17:22"
    },
    {
        "user": "432",
        "createdOn": "2015-09-01 13:27:56"
    }];

    $scope.datas = data;
    }])
    .filter("dateOnly", function(){
        return function(input){
            return input.split(' ')[0]; // you can filter your datetime object here as required.
        };
    });

jsFiddle

答案 4 :(得分:1)

$scope.dateOnly= function(timestamp) {
    return new Date(timestamp);
}

会有所帮助