我正在为我网站上的某些网页制作评论部分。我有一个数据库设置来记录发布的每条评论的时间戳。但是当我收到要显示的评论时,我会收到时间戳(当然)。我如何将其转换为可读格式?注释存储在JSONModel中。有没有办法在View.xml中做到这一点?或者我可以通过格式化JSON模型在控制器中执行此操作吗?
感谢您的帮助!
onFindComments: function(oEvent)
{
var carriersitesModel = sap.ui.getCore().getModel("glParamCarrierSitesModel").getData();
var sPath = jQuery.sap.getModulePath("");
var oComModel = new JSONModel(sPath);
oComModel = RevisionDetailsService.onGetComments(carriersitesModel.periodNbr, carriersitesModel.carrierNbr, carriersitesModel.revisionNbr);
this.setModel(oComModel, "commentModel");
this.getView().byId("commentsList").setBusy(false);
}
onGetComments: function(periodNbr, carrierNbr, revisionNbr) {
var oModel = new JSONModel();
oModel.setDefaultBindingMode("TwoWay");
var sUrl = UrlProvider.getUrl("GET_COMMENTS");
var param = {
"url": window.location.href,
"messageKey": periodNbr + "-" + carrierNbr + "-" + revisionNbr
};
$.ajax({
url: sUrl,
type: "POST",
data: JSON.stringify(param),
async: true,
contentType: "application/json",
dataType: "json",
success: function(res) {
console.log(res);
oModel.setData(res);
console.log("GET COMMENTS SUCCESS");
},
error: function(error){
console.log(error);
}
});
return oModel;
}
<semantic:content>
<FeedInput
id="FeedInput"
post="onComment"
class="sapUiSmallMarginTopBottom" />
<Table id="commentsList" width="auto" items="{commentModel>/returnData}" noDataText="{i18n>commentLineItemTableNoDataText}"
busyIndicatorDelay="{detailView>/delay}" class="sapUiResponsiveMargin">
<columns>
<Column minScreenWidth="Phone" demandPopin="true" width="150px" style=" white-space:normal">
<Text text="{i18n>commentSenderColumnText}"/>
</Column>
<Column minScreenWidth="Phone" demandPopin="true" style="white-space:normal">
<Text text="{i18n>commentMessageColumnText}"/>
</Column>
<Column minScreenWidth="Phone" demandPopin="true" width="100px">
<Text text="{i18n>commentDateColumnText}"/>
</Column>
</columns>
<items>
<ColumnListItem>
<cells>
<Text text="{commentModel>createdBy}"/>
<Text text="{commentModel>message}"/>
<Text text="{commentModel>createdTime}"/>
</cells>
</ColumnListItem>
</items>
</Table>
</semantic:content>
答案 0 :(得分:1)
对于像这样的事情,一个非常有用的javascript库是moment.js
只需将时间戳解析为片刻并使用其中一种格式化方法。
答案 1 :(得分:1)
在ui5中有不同的格式化日期(或任何其他类型):
在您的情况下,它将如下所示:
<Text text="{
path: 'commentModel>createdTime',
type: 'sap.ui.model.type.Date',
formatOptions: {style: 'medium'}
}"/>
有关不同的参数用法,请阅读官方文档。