2016-06-21 7 views
0

안녕하세요, 올바르지 않은 날짜가보기에 있습니다.각도로 MM-dd-yyyy 형식으로 날짜를 표시하는 방법

다음은 일부 프로젝트 사진과 스냅 샷입니다.

enter image description here

enter image description here

모델 : -

public partial class Employee 
    { 
     public int Id { get; set; } 
     public string name { get; set; } 
     //[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] 
     //[DataType(DataType.Date)] 
     public DateTime DOB { get; set; } 
     public string Gender { get; set; } 
     public string Email { get; set; } 
     public string Mobile { get; set; } 
     public string Address { get; set; } 
     public DateTime JoiningDate { get; set; } 
     public int DepartmentID { get; set; } 
     public int DesignationID { get; set; } 
    } 

JSON 기능 데이터베이스에서 레코드를 LINQ를 사용하여 얻을 : -

public JsonResult getAll() 
     { 
      using (empEntities dataContext = new empEntities()) 
      { 
       var employeeList = (from E in dataContext.Employees 
            join dep in dataContext.Departments on E.DepartmentID equals dep.Id 
            join dsg in dataContext.Designations on E.DesignationID equals dsg.Id 
            orderby E.Id 
            select new 
            { 
             E.Id, 
             E.name, 
             E.DOB, 
             E.Gender, 
             E.Email, 
             E.Mobile, 
             E.Address, 
             E.JoiningDate, 
             dep.DepartmentName, 
             E.DepartmentID, 
             dsg.DesignationName, 
             E.DesignationID 
            }).ToList(); 
       var JsonResult = Json(employeeList, JsonRequestBehavior.AllowGet); 
       JsonResult.MaxJsonLength = int.MaxValue; 
       return JsonResult; 
      } 
     } 

보기 : -

<tr dir-paginate="employee in employees|orderBy:sortKey:reverse|filter:search|itemsPerPage:2"> 
    @*<td style="width: 100px;">{{employee.DOB |date:'dd-MM-yyyy'}}</td>*@ 
    <td style="width: 100px;">{{employee.DOB | date:"MM-dd-yyyy 'at' h:mma"}}</td> 

각도 컨트롤러 : - 날짜 형식이 없기 때문에 정말 JSON에 존재한다

function GetAllEmployees() { 
    var getData = myService.getEmployees(); 
    debugger; 
    getData.then(function (emp) { 
     //emp.DOB = new Date(emp.DOB); 
     $scope.employees = emp.data;   
    }, function (emp) { 
     alert("Records gathering failed!"); 
    }); 
} 
+2

JSON의 규칙은 날짜에 ISO 8601 형식을 사용하는 것입니다. ASP.NET MVC는이 형식으로 날짜를 반환합니다. '/ Date (..)'는 어디에서 왔습니까? 어쨌든 * display * 형식을 변경하려면 문자열을 구문 분석 (예 :'new Date()') 한 다음 원하는 형식으로 배열해야합니다. –

답변

-1

해결책이 있습니다. .

컨트롤러가 변경되면 날짜에 문자열이 전송됩니다.

각도 컨트롤러 : -

function GetAllEmployees() { 
      var getData = myService.getEmployees();  
      getData.then(function (emp) {   
       $scope.employees = emp.data; 
       for (var i = 0; i < $scope.employees.length; ++i) {     
        $scope.employees[i].DOB = new Date(emp.data[i].DOB.match(/\d+/)[0] * 1); 
       } 
      }, function (emp) { 
       alert("Records gathering failed!"); 
      }); 
     } 

모델 : -

public partial class Employee 
    { 
     public int Id { get; set; } 
     public string name { get; set; } 
     //[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] 
     //[DataType(DataType.Date)] 
     public DateTime DOB { get; set; } 
     public string Gender { get; set; } 
     public string Email { get; set; } 
     public string Mobile { get; set; } 
     public string Address { get; set; } 
     public DateTime JoiningDate { get; set; } 
     public int DepartmentID { get; set; } 
     public int DesignationID { get; set; } 
    } 

JSON 기능은 LINQ를 사용하여 데이터베이스에서 레코드를 얻을 : -

public JsonResult getAll() 
     { 
      using (empEntities dataContext = new empEntities()) 
      { 
       var employeeList = (from E in dataContext.Employees 
            join dep in dataContext.Departments on E.DepartmentID equals dep.Id 
            join dsg in dataContext.Designations on E.DesignationID equals dsg.Id 
            orderby E.Id 
            select new 
            { 
             E.Id, 
             E.name, 
             E.DOB, 
             E.Gender, 
             E.Email, 
             E.Mobile, 
             E.Address, 
             E.JoiningDate, 
             dep.DepartmentName, 
             E.DepartmentID, 
             dsg.DesignationName, 
             E.DesignationID 
            }).ToList(); 
       var JsonResult = Json(employeeList, JsonRequestBehavior.AllowGet); 
       JsonResult.MaxJsonLength = int.MaxValue; 
       return JsonResult; 
      } 
     } 

보기 : -

<tr dir-paginate="employee in employees|orderBy:sortKey:reverse|filter:search|itemsPerPage:2"> 
    @*<td style="width: 100px;">{{employee.DOB |date:'dd-MM-yyyy'}}</td>*@ 
    <td style="width: 100px;">{{employee.DOB | date:"MM-dd-yyyy 'at' h:mma"}}</td> 
1

.

function GetAllEmployees() { 
    var getData = myService.getEmployees(); 
    debugger; 
    getData.then(function (emp) { 
     //emp.DOB = new Date(emp.DOB); 
     $scope.employees = emp.data; 
     for (var i = 0; i < $scope.employees.length; ++i){ 
      $scope.employees[i].DOB = new Date(emp.DOB); 
     } 

    }, function (emp) { 
     alert("Records gathering failed!"); 
    }); 
} 

편집 :

당신은 단순히 다음을 수행 할 수 있습니다, 당신의 각 컨트롤러에서

:

그래서, 당신이 먼저해야 할 일, 날짜로 문자열을 캐스팅하는 것입니다

다음과 같은 방식으로 인터셉터를 만들 수도 있습니다.

(function() { 
    window.Company = window.Company || {}; 
    Company.DateTime = Company.DateTime || {}; 
    var parseDate = function(textValue) { 
     return new Date(textValue); 
    }; 

    Company.DateTime.parseObject = function(dataObject) { 
     if (_.isString(dataObject) && /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:\+|\-)?\d{1,2}:\d{2})$/.test(dataObject.trim())) { 
      dataObject = parseDate(dataObject.trim()); 
     } 
     if (_.isArray(dataObject)) { 
      for (var i = 0, l = dataObject.length; i < l; i++) { 
       dataObject[i] = Company.DateTime.parseObject(dataObject[i]); 
      } 
     } 
     if (_.isObject(dataObject)) { 
      for (var prop in dataObject) { 
       if (dataObject.hasOwnProperty(prop)) { 
        dataObject[prop] = Company.DateTime.parseObject(dataObject[prop]); 
       } 
      } 
     } 
     return dataObject; 
    }; 
}()); 
+0

안녕하세요 @Deblaton 컨트롤러, 컨트롤러에 캐스팅 할 위치 위에 주어진다 –

+0

@SunilChaudhry 당신은 문자열에 날짜를 캐스팅하지 않는다. 문자열을 서식 화한다. (아주 강한 힌트). –

+0

@Deblaton은 날짜로 null을 표시합니다. (경고 할 때 (emp.DOB), 해당 경고가 표시되지 않음, 경고 (emp.data)도 정의되지 않음) –