我想在沒有時間部分的情況下比較javascript中的兩個日期。第一個日期來自jquery datepicker,第二個日期來自一個字符串。Javascript - 比較沒有時間的日期
儘管我可以發誓我的方法工作了一段時間,但看起來它現在不工作。
我的瀏覽器是Firefox,但我也需要我的代碼才能在IE中工作。
function selectedDateRetentionDaysElapsed() {
var dateSelectedDate = $.datepicker.parseDate('dd/mm/yy', $('#selectedDate').val());
// dateSelectedDate is equal to date 2015-09-30T14:00:00.000Z
var parsedRefDate = isoStringToDate('2015-11-10T00:00:00');
var reportingDate = getPredfinedDateWithoutTime(parsedRefDate);
// reportingDate is equal to date 2015-11-10T13:00:00.000Z
var businessDayCountFromCurrentReportingDate = getBusinessDayCount(dateSelectedDate,reportingDate);
// businessDayCountFromCurrentReportingDate is equal to 39.9583333333336
if (businessDayCountFromCurrentReportingDate >= 40) {
return true;
}
return false;
}
function isoStringToDate(dateStr) {
var str = dateStr.split("T");
var date = str[0].split("-");
var time = str[1].split(":");
//constructor is new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
return new Date(date[0], date[1]-1, date[2], time[0], time[1], time[2], 0);
}
function getPredfinedDateWithoutTime(myDate) {
myDate.setHours(0,0,0,0)
return myDate;
}
我的問題是...
- 我isoStringToDate函數返回與即使我不指定時間的日期。
- 在一個日期的setHours調用似乎也沒有工作。
有人可以幫助我這個。
1.您指定的時間。您解析一個字符串,將值提取到'time'數組,然後將其傳遞給構造函數。 –
沒有辦法將'2015-11-10T00:00:00'轉換爲Date對象相當於'2015-09-30T13:00:00.000Z',這些日期相隔41天。另外,* isoStringToDate *函數爲**本地**小時零,所以除非您處於GMT時區,即UTC(即Z)時區,否則時間組件不會爲00:00:00。 – RobG
嗨,葉爾達。這是真的,但時間值是00:00:00。那麼,沒有時間,這不是一個有效的日期嗎? – Richie