자바 스크립트를 사용해야하는 과제를 진행하고 있습니다. 내 응용 프로그램에서 사용자는 양식에 날짜를 입력합니다. 그런 다음 그 날짜를 현재 날짜와 비교하려고합니다. 차이점은 작업을 완료해야하는 일 수입니다. 그러나 계산에 관해서는 약간의 문제가 있습니다. dueDate는 동적으로 생성 된 객체의 매개 변수입니다.두 날짜의 차이가 있음
function getFormData() {
var adate = document.getElementById("dueDate").value;
if (checkInputText(dueDate, "Please enter a date")) return;
...
}
function processDate(adate) {
var splitArray = adate.split("-");
var year = splitArray[0];
var month = splitArray[1] - 1;
var day = splitArray[2];
var date = new Date(year, month, day);
var dateParse = date.getTime();
return dateParse;
}
function compareDates(dueDate) { //dueDate is the value from the form
var cdate = new Date();
console.log("this is todays date" + " " + cdate); //shows correct date
var cdateparse = Date.parse(cdate);
var dueDateparse = Date.parse(dueDate);
var diff = dueDateparse - cdateparse;
var daysCal = diff/1000/60/60/24;
var days = parseInt(daysCal); //where I'm having trouble
console.log(days);
if (days == 0) {
mymessage = " you have to do this task today";
}
try {
if (days < 0) {
mymessage = "this task is overdue by" + " " + -days + " " + "days";
throw new Error("you are overdue");
}
} catch (ex) {
alert(ex.message);
return;
}
if (days > 0) {
console.log("the difference is greater than 0");
mymessage = "you have" + " " + days + " " + "more days";
}
}
현재 날짜를 양식에 입력하면 문제가 발생합니다. 나는 수학을 시도했다. 바닥과 수학. 그러나 그 수는 항상 반올림되어 과제가 기한이라고 말하는 나의 메시지를 던진다. parseInt를 사용하면 원하는 결과에 가장 가깝지만, 내일 날짜에 넣으면 기한이 지난 것으로 나타납니다. 어떤 제안?
dueDate에 예제 값을 줄 수 있습니까? 나는이 예에서 당신에게 어떤 가치가 주어 졌는지 말할 수 없다. – alexp
예, 오늘은 2013-03-19입니다. – user2084813
오늘 날짜로 시도하면 어떻게됩니까? http://jsfiddle.net/mK23N/ ->'당신은 1 일 더 남았습니다 .' – dfsq