我有一个像这样的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
但未成功。请给我一些相关的知识。
答案 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;
}
答案 2 :(得分:1)
答案简短:
请运行此代码段:
<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.
};
});
答案 4 :(得分:1)
$scope.dateOnly= function(timestamp) {
return new Date(timestamp);
}
会有所帮助