2016-08-23 4 views
2

아래 방법은 날짜를이 형식의 텍스트 상자 Wed Sep 14 2016 00:00:00 GMT+0400으로 보냅니다. 그래서 나는 코드 아래에에 시도 Sep 14 2016형식 하위 문자열을 사용하는 JavaScript 날짜

이 형식으로 날짜를 얻기 위해 문자열 방법을 사용하려고하지만

가이 오류를 Uncaught TypeError: date.substring is not a function

<script> 
    $(document).ready(function() { 
     var dateval = $('#<%= txtdate.ClientID %>').val(); 
     if (dateval != '') { 

      var options = { 
       selectedDate: dateval, 
       size: 'medium', 
       width: 960 
      } 
     } else { 
      var options = { 
       size: 'medium', 
       width: 960 
      } 
     } 
     $('#paginator').datepaginator(options); 
     $('#paginator').on('selectedDateChanged', function (event, date) { 
      $('#<%= txtdate.ClientID %>').val(date.substring(4, 12)); 
     }); 
    }); 
</script> 
+0

같은 하위 문자열을

를 사용합니다. 대신 [moment.js] (http://momentjs.com)을 사용하십시오. – str

답변

1

당신은 문자열로 날짜를 변환해야합니다 그리고 당신은 당신의 자신에 날짜를 구문 분석하지 않아야이

$('#<%= txtdate.ClientID %>').val(date.toString().substring(4, 12)); 
3

사용을 반환 작동하지 않았다 Array.prototype.slice 기능. date.constructorDate 기능하지 String 때문에

var date = 'Wed Sep 14 2016 00:00:00 GMT+0400'; 
var formatted = date.split(' ').slice(1, 4).join(' '); 

당신은 오류가 발생했습니다. 문자열로 변환하려면 date.toString() 또는 간단히 date + ''을 사용할 수 있습니다. 문자열로 변환 된 후 date.substr(4, 11)으로 호출 할 수 있습니다. 11 대신 12을 입력하면 끝에 여분의 공백이 생깁니다.

또한 substrsubstring 사이에 차이가 있습니다. 첫 번째 것은 문자열의 시작 위치와 길이를 요구하고, 두 번째 것은 문자열의 시작 위치와 끝 위치를 요구합니다.

관련 문제