Angular js hiển thị ngày tháng tiếng việt

Dữ liệu mình get về từ server có dạng json sau

    [ { "id": "6", "ten": "Hốt tất liệt", "ngay": "2016-09-03 05:24:56", "phai_nam": "1" }, { "id": "7", "ten": "Võ tòng", "ngay": "2016-09-03 05:24:56", "phai_nam": "1" }, { "id": "11", "ten": "Võ tam nương", "ngay": "2016-09-03 06:39:06", "phai_nam": "0" }, { "id": "12", "ten": "Khổng Tử", "ngay": "2016-09-03 06:48:17", "phai_nam": "1" } ]

Bây giờ mình muốn hiển thị lên table với định dạng dd/MM/yyyy mình làm thế này

    {{r.ngay | date : 'dd/MM/yyyy'}}

sao nó không ép phê, có ai chỉ giúp với

Bạn kiểm tra lại cái giá trị ngay có phải là Date object chưa. Date object có dạng: yyyy-MM-ddTHH:mm:ss.sssZ and its shorter versions like yyyy-MM-ddTHH:mmZ, yyyy-MM-dd or yyyyMMddTHHmmssZ thì mới format được ra dd/MM/yyyy
Tham khảo: https://docs.angularjs.org/api/ng/filter/date

Ồ cám ơn nhưng hiện giờ nó dạng chuỗi, phải làm sao bạn??

        [
  {
    "id": "6",
    "ten": "Hốt tất liệt",
    "ngay": "2016-09-03 05:24:56",
    "phai_nam": "1"
  },
  {
    "id": "7",
    "ten": "Võ tòng",
    "ngay": "2016-09-03 05:24:56",
    "phai_nam": "1"
  },
  {
    "id": "11",
    "ten": "Võ tam nương",
    "ngay": "2016-09-03 06:39:06",
    "phai_nam": "0"
  },
  {
    "id": "12",
    "ten": "Khổng Tử",
    "ngay": "2016-09-03 06:48:17",
    "phai_nam": "1"
  }
]

Bạn có thể viết cái filter để xử lí cái date này theo ý mình:

app.filter("dateFilter", function () {
    return function (item) {
        if (item != null) {
            return new Date(parseInt(item.substr(6))); // Cái này là vd thôi, sửa lại format theo ý mình nhé
        }
        return "";
    };
});

Binding (cái này cũng là vd binding thôi :smile: ):

<tr ng-repeat="t in Result">
    <td>{{t.Date | dateFilter | date:"dd/MM/yyyy"}}</td>
</tr>
    app.filter("dateFilter", function () {
return function (item) {
    if (item != null) {
        return new Date(item); //Mình cho xử ngày giờ luôn
    }
    return "";
};

});

Cái này ok bạn thk!

Mình cũng vừa nghĩ ra cách khác :slight_smile:

    				var ds=angular.copy($scope.ds);
			for(x in ds){
				angular.forEach(ds[x], function(v,k){
					if(k=="ngay"){
						ds[x]["ngay"]=new Date(ds[x]["ngay"]);
					}
				});
			}
			$scope.ds2=ds; 

Chuyển tất cả chuỗi của danh sách sang ngày giờ luôn. Vậy là khỏi cần customs filter!!!
Nhưng bi giờ lại phát sinh vấn đề mới. Mình lại muốn các trường phai_nam vào một check box nhưng sao nó không chịu hiển thị???

Bạn đưa cái code lỗi lên mới tìm hiểu được chứ :smiley: Nói vậy sao mình biết bị gì :joy:

Data from server thế này:
[
{id:1,ten:“nguyen van A”,phai_nam:1},
{id:2,ten:“nguyen van A2”,phai_nam:1},
{id:3,ten:“nguyen Thị Bưởi”,phai_nam:0}
]

Bây giờ mình muốn đưa vào checkbox

<tr ng-repeat=" x in ds ">
<td>{{x.id}}</td>
<td><input ng-model="x.phai_nam" type="checkbox" /></td>
</tr>

Tại sao nó không check khi phái nam ==1 ?

checkbox chỉ nhận giá trị true/false thôi. Hiện giờ data đang là string. https://docs.angularjs.org/api/ng/input/input[checkbox]
Phải chuyển về dạng như vậy nhé :smile:

<script>
angular.module('checkboxExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.checkboxModel = {
value1 : true,
value2 : 'YES'
};
}]);
</script>
<form name="myForm" ng-controller="ExampleController">
<label>Value1:
<input type="checkbox" ng-model="checkboxModel.value1">
</label><br/>
<label>Value2:
<input type="checkbox" ng-model="checkboxModel.value2"
ng-true-value="'YES'" ng-false-value="'NO'">
</label><br/>
<tt>value1 = {{checkboxModel.value1}}</tt><br/>
<tt>value2 = {{checkboxModel.value2}}</tt><br/>
</form>

uh Hay nhi, thk

ng-model=“x.phai_nam”
ng-true-value=" ‘1’ "
ng-false-value=" ‘0’ "

hay!!!
angular no tien doan rui2

Khong bit vay duoc khong ta???

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?