2010-04-19 3 views
0

나는 데이터 테이블을 만들었습니다. 모든 열은 정렬 가능합니다. 그것은 하나의 열에 날짜가있어 dd/mm/yyyy hh : mm : ss 형식을 취했습니다. 이것은 doco에 정의 된 기본 형식과 다르지만 비 영어 형식에 대해 자체 형식을 정의 할 수 있어야합니다.YUI DataTable에서 날짜 열의 올바른 날짜 형식은 무엇입니까?

DataTable의 클래스는 데이터의 특정 잘 알려진 유형의 서식을 내장 정적 함수의 집합을 제공합니다 (아래 참조). 당신의 열 정의에서, 당신은 YAHOO.widget.DataTable.formatDate, "MM/DD가/YYYY"의 기본 구문 유형 날짜의 데이터를 렌더링 기능을 에 컬럼의 포맷을 설정합니다. 을 사용하여 내장형 포맷터를 사용하지 않으려면 자신의 것으로, 포매터를 사용자 정의 함수 으로 지정할 수 있습니다.

표는 HTML 태그에서 생성되어 데이터가 태그 내에 보관됩니다. 레코드 집합 기본 자바 스크립트 유형의 데이터를 보유 할 것으로 예상, 일반적으로

:

이 나에게 자바 스크립트 호환 문자열 날짜에 대해 좀 더 많은 단서를 제공합니다. 예를 들어, 을 올바르게 정렬하려면 의 JavaScript 날짜 인스턴스가 사용되고 문자열 (예 : "4/26/2005")이 아닐 것으로 예상됩니다. 데이터 레코드 집합에 온다 데이터 유형 변환하는 는 에 파서 속성을 통해 사용자의 데이터 소스의 responseSchema

나는 내가 날짜 형식에 뭔가를 누락 의심의 필드의 배열을 사용할 수 있습니다. Yui dataTable은 "dd/mm/yyyy hh : mm : ss"형식을 원한다는 점을 감안할 때 자바 스크립트에서 사용할 수있는 문자열 날짜는 무엇입니까?

+0

필드 데이터에 대한 실제 Date() 개체를 사용하여 DataTable을 올바르게 구성하는 데 대한 질문이 있습니까? 또는 렌더링 된 OUTPUT의 텍스트 형식을 변경하는 방법을 묻는 중입니까? –

답변

1

당신은 당신이 원하는 형식으로 서버에서 클라이언트로 날짜를 전달할 수

{key:"columnKey", label:"columnLabel", 
    formatter:function(container, record, column, data) { 
     container.innerHTML = YAHOO.util.Date.format(data, {format:"%x"}, "pt-BR"); 
    } 
} 
+0

꽤 감사합니다. 작동하는지 알려줍니다. 홀로 유이에 대한 자세한 이해에 +1, 그것에 대한 더 많은 표를주고 싶습니다! ... LOL – giulio

+0

@giulio 잘 작동합니다! 두통없이 YUI datatable을 사용합니다. http://jsbin.com/ideha 나 자신이 제공 한 기사보기 –

0

자바 스크립트는 다음과 같은 형식으로 날짜 열을 사용하여 날짜를 구성 할 수 있습니다 : (

new Date("April 22, 2010 14:15:23"); 

하는 서버 측에서 날짜 열 형식의 제어 할 수없는 경우 또는 원하지 않는 그것을 변경하려면) datestring을 가져 와서 새로 생성 된 Date 객체를 반환하는 사용자 정의 구문 분석 함수를 작성하십시오.

DataTable에 표시된 데이터를 작성할 때이 파서 기능을 사용할 수 있습니다. 당신이 (두 번째 회색 상자로 표시) 유이의 데이터 소스 모듈을 사용하는 경우 이미 날짜 될 수 있도록

rows:[{name:"John",born:customParser("[date string here"]}, 
     {name:"Bill",born:customParser("[date string here"]} 
    ] 

- 또는

, 당신은 (날짜 필드에이 파서 기능을 등록 할 수 있습니다) 전에 DataTable 구성되어 있습니다.

dataSource.responseSchema = { 
    . . . 
    fields: [ 
     ... 
     { key: "birth_dt", parser: customParser } 
     ... 
    ] 
    .... 
} 
0

을 다음과 같이 DataSource.responseSchema.fieldsparser 필드를 설정 그냥, 로케일에게

YAHOO.util.DateLocale["pt-BR"] = YAHOO.lang.merge(YAHOO.util.DateLocale, { 
    x:"%d/%m/%Y" 
}); 

그리고 당신의 열 설정을 정의합니다 그것을 파싱 할 함수로 옮긴다. dynamic data examplestringToDate을 찾으십시오.

클라이언트 측에서는 formatter 필드에 각각 ColumnDefs의 기능을 제공하는 다른 형식으로 날짜를 표시 할 수 있습니다.

전체 DataTable의 날짜 형식을 설정하려면 dateOptions 옵션을 설정하십시오. 또는 oconfig 매개 변수에 대해 YAHOO.util.Date.format() docs에 설명 된 것과 동일하게 ColumnDef.dateOptions을 설정할 수 있습니다.

현재 로케일 및 전체 DataTable을 들어

, 그것은 또한이 sLocale을 설정할 수 있습니다

var myConfigs = { 
    initialRequest: ... 
    ... 
    // http://developer.yahoo.com/yui/docs/YAHOO.util.Date.html 
    dateOptions: {format: '%c'} 
    }; 

해야한다.

관련 문제