2016-11-11 2 views
4

부트 스트랩 테이블을 사용하는 응용 프로그램이 있고 필드 중 하나가 시간입니다. 데이터베이스에서 데이터를 가져 오면이 필드의 데이터는 2016-11-07T13 : 40 : 29.000Z와 같이 표준 JSON 형식으로 이해되는 JSON 형식의 광고로 인코딩됩니다.JSON 날짜 형식 - 표시 시간 만

나는 그것을 분해하고 내 테이블에 하나의 열에 날짜를 표시하고 다른 열에 시간을 표시하는 것이 이상적입니다. 시간 만 표시 할 수 있다면 행복 할 것입니다.

나는 그것이 열 머리글에 dataFormatter를 추가하는 것과 관련이 있다고 읽었지만 JavaScript가 NaN을 반환하므로 제대로 작동하지 않는 것처럼 보입니다.

이 코드는 문제를 조사하는 동안 발견되었습니다. 나는 Javascript를 처음 사용하기 때문에 몇 가지 실수를 저질렀습니다.

<table id="table" data-url ="http://maccdx161012:4567/api/v1/sat" data-toggle="table"> 
    <thead> 
     <tr> 

      <th data-field="initials">Initials</th> 
      <th data-field="sector">Sector</th> 
      <th data-field="cjs">CJS</th> 
      <th data-field="satin" data-formatter="timeFormatter">In</th> 
      <th data-field="satout">Out</th> 
      <th data-field="duration">Duration</th> 
      <th data-field="position">Position</th> 
      <th data-field="ot">OT</th>    
     </tr> 
    </thead> 
</table> 
<script> 
    function timeFormatter(value) { 
     var date = new Date(value*1000); 
     var hours = date.getHours(); 
     var minutes = "0" + date.getMinutes(); 

     return hours + ':' + minutes.substr(-2); 
    } 
</script> 
+2

'2016-11-07T13 : 40 : 29.000Z'.substring (11,16)' – Keith

+0

'값'입력 필드가 아마 '아니요'인 경우 NaN 예외가 표시되는 경우 콘솔을 넣을 수 있습니다. 함수의 log (value)가 무엇이 문제인지를 확인하십시오. – Kalamarico

답변

2
<script> 
    function timeFormatter(value) { 
     var date = new Date(value); 
     var hours = date.getHours(); 
     var minutes = leadZero(date.getMinutes()); 

     return hours + ':' + minutes; 
    } 
    function dateFormatter(value) { 
     var date = new Date(value); 
     var years = date.getFullYear(); 
     var months = leadZero(date.getMonth() + 1); 
     var days = leadZero(date.getDate()); 

     return years + '-' + months + '-' + days; 
    } 
    function leadZero(n) { return n>9 ? n : "0" + n; } 
</script> 

은 현지 시간대의 시간을 반환합니다. 이 기능을 원하지 않는다면 Keith의 솔루션을 사용하십시오.

+0

이것은 내가 원했던 것과 똑같은 문제가 하나있는 것처럼 보입니다. 나는 한 번 이렇게 보입니다 : 16:39 또는 15:32 그것은 위대합니다. 그러나 그들 중 일부는 16 : 0 또는 18 : 0처럼 보입니다. 왜 이것이 모든 사람에게 일어날 수 있는지는 전혀 모르겠다. 코드를 제거하고 JSON 형식으로 돌아 가면 모두 동일하게 보입니다. 다시 한 번 감사드립니다! 정말 도움이 – user2843365

+0

10 분 미만의 시간과 관련이있는 것으로 보입니다. – user2843365

+0

새 버전을 시도하십시오 – br3t