前端接受到后端时间为数组的处理方式
今天遇到一个问题就是通过调用后端接口获取的时间是一个长度为6的数组;搜了一下发现可以用两种方式解决。
方式一:自定义函数处理时间!
,cols: [[ //表头
{type: 'checkbox', fixed: 'left'}
,{field: 'purchaseId', title: 'ID', sort: true, fixed: 'left',hide:true}
,{field: 'supplierName', title: '供应商名称',sort: true}//当field是直属属性时,可以不用temple去获取!
,{field: 'userName', title: '采购员', sort: true}
,{field: 'purchaseDate', title: '采购时间',sort: true,templet:function(resp){
return dateArrayTransfer(resp.purchaseDate,'yyyy-MM-dd HH:mm:ss');
}}
,{fixed:'right',title:'操作',toolbar:'#operatBtn'}
将获取的时间通过自定义函数dateArrayTransfer()转换成想要的格式。
function dateArrayTransfer(dateArray) {
if(dateArray == null || dateArray == ''){
return '';
}
var returnDate = dateArray[0]+"-"+
returnDoubleNum(dateArray[1])+"-"+
returnDoubleNum(dateArray[2])+" "+
returnDoubleNum(dateArray[3])+":"+
returnDoubleNum(dateArray[4])+":"+
returnDoubleNum(dateArray[5]);
return returnDate;
}
//保证两位数
function returnDoubleNum(number) {
return (Array(2).join(0) + number).slice(-2);//创建一个长度为2的数组,且默认用0填充;然后用传过来的数添加都右边,然后从右向左截取两位!
}
这样就可以把时间数组转化为我们想要的时间格式(我这里把时间格式是写死了的,也可以添加js函数去分别处理!);
方式二:让后端处理成我们想要的时间格式!只需加一个注解就好!
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("purchase")
public class PurchaseBean implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "purchase_id", type = IdType.AUTO)
private Long purchaseId;
private Long fkUserId;
@TableField(exist = false)
private String userName;
private Long fkOfferId;
@TableField(exist = false)
private String supplierName;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")//这里加上json格式注解指定样式,前端获取到时间就是规定的样式!
private LocalDateTime purchaseDate;
,limits:[5,10,20,40]
,cols: [[ //表头
{type: 'checkbox', fixed: 'left'}
,{field: 'purchaseId', title: 'ID', sort: true, fixed: 'left',hide:true}
,{field: 'supplierName', title: '供应商名称',sort: true}//当field是直属属性时,可以不用temple去获取!
,{field: 'userName', title: '采购员', sort: true}
,{field: 'purchaseDate', title: '采购时间',edit:"text",sort: true}
总结:遇到时间为数组时,一般不用前端去自定义处理,直接让后端设置一下时间的格式即可!