0
나는 오늘을 동적으로 만기일과 비교하여 그에 따라 계산 된 열을 채우는 신호등 시스템을 만들고 있습니다. 코드를 작성할 수 있었지만 사용자가 요구 사항을 변경했습니다. 항목의 오늘 만기일을 나타내는 노란색 신호등 대신, 항목이 다음 5 일 이내에 만기가되는지를 보여주고 싶습니다.자바 스크립트 날짜 빼기
오늘부터 5 일전까지 "else if (fieldDate == 오늘)"에서 변경하고 싶습니다. JavaScript에서 오늘 5 개체를 만드는 적절한 방법을 알 수 없습니다. 도움!
<script type="text/javascript">
//<!-- This script searches for calculated fields that are "marked" vith "Due:" and -->
//<!-- Create a calculated field in the list with the following formula: -->
//<!-- =IF(DueDate="","N/A","Due: "&MONTH(DueDate)&"/"&DAY(DueDate)&"/"&YEAR(DueDate)) -->
//<!-- The data type returned from this formula is: Date and Time -->
// call script
findDatefields();
function findDatefields() {
var d = new Date();
var today = new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();
var arr = document.getElementsByTagName('td');
for (var i = 0; i < arr.length; i++) {
// Check if it is "our field"
if ((arr[i].className == "ms-vb2") && (arr[i].innerHTML.indexOf("Due:") == 0)) {
var sepDate = arr[i].innerHTML.substring(5).split("/", 3);
var m = sepDate[0];
var d = sepDate[1];
var y = sepDate[2];
// build the datestring
var fieldDate = new Date(y, m - 1, d, 00, 00, 00).getTime();
if (fieldDate > today) {
arr[i].innerHTML = "<IMG src='_layouts/images/KPIDefault-0.gif' Title='On track' />";
}
else if (fieldDate == today) {
arr[i].innerHTML = "<IMG src='_layouts/images/KPIDefault-1.gif' Title='Due today' />";
}
else {
arr[i].innerHTML = "<IMG src='_layouts/images/KPIDefault-2.gif' Title='Overdue' />";
}
}
}
}
// For it to work in collapsed views
function ExpGroupRenderData(htmlToRender, groupName, isLoaded) {
var tbody = document.getElementById("tbod" + groupName + "_");
var wrapDiv = document.createElement("DIV");
wrapDiv.innerHTML = "<TABLE><TBODY id=\"tbod" + groupName + "_\" isLoaded=\"" + isLoaded + "\">" + htmlToRender + "</TBODY></TABLE>";
tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild, tbody);
findDatefields();
}
</script>
나는이 시도를 작동하지 않습니다. 오늘 5 일 전에 변수를 설정하고 그 변수와 비교하고 싶습니다. fieldDate는 오늘 - 5보다 크거나 같아야합니다 (즉, 지난 5 일 이내). – thunderxlt
5 일 이내에 체크인을하도록 업데이트되었습니다. –
5를 다른 곳에서 설정 한 변수로 바꿀 수도 있습니다. –