EasyUI中datagrid(数据表格)根据单元格内的数据日期与系统当前的日期作对比,然后改变另一个单元格的样式并计算出相差的天数
效果展示
根据数据表格中的截止日期与系统时间作对比,相比较作差,系统时间大于截止日期的,在项目进度一栏中添加一个红色的小方块,并显示超过项目期限xx天;系统时间小于截止日期并不超过7天的,在项目进度一栏中添加一个黄色的小方块,并显示距离项目期限还剩下xx天;系统时间小于截止日期并超过7天的,在项目进度一栏中添加一个绿色的小方块,并显示距离项目期限还剩下xx天。
具体实现代码
{
field: 'schedule',
title: '项目进度(%)',
width: '220px',
align: 'center',
formatter: function(value, rowData, index) {
function myDate() {//获取系统时间
var now = new Date();
var currentdate = now.getTime();
return currentdate;
}
function dateDiff(firstDate, secondDate) {
var firstDate = new Date(rowData.planEndTime);
var secondDate = new Date(myDate());
//取两个时间的毫秒差
var diff = firstDate.getTime() - secondDate.getTime();
var result = parseInt(diff / (1000 * 60 * 60 * 24));
return result;
}
if (dateDiff() < 0) {
return (
'<div style="width:10px;height:10px;background-color:red;">' +
'</div>' +
'<span>' +
'超过项目期限' +
Math.abs(dateDiff()) +
'天' +
'</span>'
);
} else if (dateDiff() <= 7 && dateDiff() >= 0) {
return (
'<div style="width:10px;height:10px;background-color:yellow;">' +
'</div>' +
'<span>' +
'距离项目期限还剩下' +
Math.abs(dateDiff() + 1) +
'天' +
'</span>'
);
} else if (dateDiff() > 7) {
return (
'<div style="width:10px;height:10px;background-color:green;">' +
'</div>' +
'<span>' +
'距离项目期限还剩下' +
Math.abs(dateDiff() + 1) +
'天' +
'</span>'
);
}
}
}