2010-11-14 31 views
7

Cửa hàngExtJS 3.3 Format.Util.Ext.util.Format.dateRenderer trở NaN

var timesheet = new Ext.data.JsonStore(
    { 
     root: 'timesheetEntries', 
     url: 'php/scripts/timecardEntry.script.php', 
     storeId: 'timesheet', 
     autoLoad: true, 
     fields: [ 
      { name: 'id', type: 'integer' }, 
      { name: 'user_id', type: 'integer' }, 
      { name: 'ticket_number', type: 'integer' }, 
      { name: 'description', type: 'string' }, 
      { name: 'start_time', type: 'string' }, 
      { name: 'stop_time', type: 'string' }, 
      { name: 'client_id', type: 'integer' }, 
      { name: 'is_billable', type: 'integer' } 
     ] 
    } 
); 

Một phần của mã GridPanel tôi:

columns: [ 
    { 
     id: 'ticket_number', 
     header: 'Ticket #', 
     dataIndex: 'ticket_number' 
    }, 
    { 
     id: 'description', 
     header: 'Description', 
     dataIndex: 'description' 
    }, 
    { 
     id: 'start_time', 
     header: 'Start', 
     dataIndex: 'start_time', 
     renderer: Ext.util.Format.dateRenderer('m/d/Y H:i:s') 
    } 
... 

Từ máy chủ, tôi nhận được chuỗi JSON này :

{ 
    timesheetEntries:[ 
     { 
     "id":"1", 
     "user_id":"1", 
     "description":null, 
     "start_time":"2010-11-13 11:30:00", 
     "stop_time":"2010-11-13 15:50:10", 
     "client_id":null, 
     "is_billable":"0" 
     } 

Bảng điều khiển lưới của tôi hiển thị tốt. Tuy nhiên, cột thời gian bắt đầu và dừng của tôi đọc 'NaN/NaN/NaN NaN: NaN: NaN' và tôi không biết tại sao.

Trả lời

5

Nếu dữ liệu của bạn có "2010-11-13 11:30:00", định dạng của bạn có phải là 'Y-m-d H:i:s' không?

EDIT: Xin lỗi, cấu hình lưới nên được OK - Tôi đã đề cập đến các dateFormat giá trị trong định nghĩa lĩnh vực của cửa hàng của bạn, mà nên 'Y-m-d H:i:s' để dữ liệu đến của bạn có thể được ánh xạ đúng cách để mô hình cột của bạn. Bạn cũng nên bao gồm type: 'date'. Bạn không hiển thị cấu hình cửa hàng của bạn, nhưng vấn đề có thể là một trong những điều đó là sai.

0

Hãy thử điều này

chức năng renderDate (v, params, ghi) {var dt = new Date (v);
nếu (! IsNaN (dt.getDay())) { trả lại dt.format ('d/m/Y'); }
trả lại '-'; }