2012-11-19 76 views
0

我正在製作拉力賽中的自定義網格,以在我的項目中創建投資組合項目表。我試圖公開的一個字段是「計劃開始日期」。當按原樣使用時,它將按照以下格式返回日期時間 - 「YYYY-MM-DDTHH:MM:SS.xxxZ」。我一直試圖使用rally.sdk.util.DateTime.format(date(),「yyyy-MM-dd」)函數來創建我的rowInfo名稱/值對時返回日期而不是整個事物添加到我的表中,但它不工作。將格式化日期添加到自定義網格

任何想法?

var tbCfgTable = { 
    columns: [{ 
     key: 'ID', 
     width: "20%" 
    },{ 
     key: 'Name', 
     width: "4%" 
    },{ 
     key: 'Planned Start', 
     width: "4%" 
    },{ 
     key: 'Planned End', 
     width: "3%" 
    }] 
}; 
gTable = new rally.sdk.ui.Table(tbCfgTable); 

var nbrPis = theResults.pisQueryKey.length; 
for (var ndx = 0; ndx < nbrPis; ndx++){ 
    aPi = theResults.pisQueryKey[ndx]; 
    // populate planned schedule rows 
    aRowInfo = { 
      'ID': aPi.Name, 
      'Name': aPi.Name, 
      'Planned Start': aPi.PlannedStartDate, 
      'Planned End': aPi.PlannedEndDate 
      }; 
    gTable.addRow(aRowInfo); 
} 
+0

如果您可以發佈一小段代碼,您目前可能會幫助我們更多地幫助您。 = - ) –

回答

0

你真正接近得到它 - 所有你需要做的是第一解析日期字符串轉換成日期對象,然後進行格式化。

//function to format date 
function formatDate(dateString) { 
    if(!dateString) { return ''; } 

    return rally.sdk.util.DateTime.format(
     rally.sdk.util.DateTime.fromIsoString(dateString, true), 'yyyy-MM-dd'); 
} 

//build your table rows as usual, calling formatDate for each date field 
aRowInfo = { 
    'ID': aPi.Name, 
    'Name': aPi.Name, 
    'Planned Start': formatDate(aPi.PlannedStartDate), 
    'Planned End': formatDate(aPi.PlannedEndDate) 
}; 
+0

感謝您的信息。我試圖做到這一點,但我現在得到這個代碼的TypeError。好像它正在返回一個字符串,這就是你在RowInfo中所期待的,所以我不確定不匹配的地方。 – jlicup

+0

您可能有一些沒有設置PlannedStart/EndDate字段中的一個或兩個的PI。在formatDate中,首先檢查是否定義了dateString,如果不是,則返回空字符串。我更新了上面的例子來反映... –

+0

謝謝,這工作! – jlicup