在JavaScript中,什麼是確定日期的有效範圍內提供瀑布的最佳方式是什麼?使用Javascript,我如何確保日期範圍有效?
這方面的一個例子可能是檢查,看看如果用戶輸入requestedDate
是下一個有效的工作周的一部分。請注意,這不僅僅是檢查一個日期是否大於另一個日期,因爲有效日期將等於或大於範圍的下限,同時小於或等於範圍的上限。
在JavaScript中,什麼是確定日期的有效範圍內提供瀑布的最佳方式是什麼?使用Javascript,我如何確保日期範圍有效?
這方面的一個例子可能是檢查,看看如果用戶輸入requestedDate
是下一個有效的工作周的一部分。請注意,這不僅僅是檢查一個日期是否大於另一個日期,因爲有效日期將等於或大於範圍的下限,同時小於或等於範圍的上限。
其實,這是我所見過拿出了很多我的作品前,下面的代碼位就是我的回答這個問題的問題。
// checkDateRange - Checks to ensure that the values entered are dates and
// are of a valid range. By this, the dates must be no more than the
// built-in number of days appart.
function checkDateRange(start, end) {
// Parse the entries
var startDate = Date.parse(start);
var endDate = Date.parse(end);
// Make sure they are valid
if (isNaN(startDate)) {
alert("The start date provided is not valid, please enter a valid date.");
return false;
}
if (isNaN(endDate)) {
alert("The end date provided is not valid, please enter a valid date.");
return false;
}
// Check the date range, 86400000 is the number of milliseconds in one day
var difference = (endDate - startDate)/(86400000 * 7);
if (difference < 0) {
alert("The start date must come before the end date.");
return false;
}
if (difference <= 1) {
alert("The range must be at least seven days apart.");
return false;
}
return true;
}
現在有兩件事情需要注意有關該代碼,Date.parse
功能應適用於大多數的輸入類型,但已經知道有問題,其中部分格式如「年月日」,所以你應該測試前使用它。但是,我似乎記得,大多數瀏覽器會根據計算機區域設置來解釋給Date.parse的日期字符串。
而且,86400000乘數應該是什麼日子,你正在尋找的範圍。所以如果你正在尋找至少相隔一週的日期,那麼它應該是七個。
所以,如果我currenctly明白,你需要看如果日期比其他更大。
function ValidRange(date1,date2)
{
return date2.getTime() > date1.getTime();
}
然後您需要分析你是從UI獲得的字符串,Date.parse,像這樣:
ValidRange(Date.parse('10-10-2008'),Date.parse('11-11-2008'));
這是否幫助?
問題是沒有這麼多檢查,看看一個日期比其他的大,但檢查是否一個日期在給定範圍有效日期內。例如,如果業務要求是在接下來的七天內解決任務,那麼您希望確保預定日期小於或等於當前日期的七天。 – rjzii 2010-05-25 17:42:10
var myDate = new Date(2008, 9, 16);
// is myDate between Sept 1 and Sept 30?
var startDate = new Date(2008, 9, 1);
var endDate = new Date(2008, 9, 30);
if (startDate < myDate && myDate < endDate) {
alert('yes');
// myDate is between startDate and endDate
}
您可以將多種格式傳遞給Date()構造函數來構造日期。你也可以構造一個新的日期與當前時間:
var now = new Date();
,並在其上設置各種屬性:
now.setYear(...);
now.setMonth(...);
// etc
請更新開始和結束checkFileRange(開始,結束)的fromat很難chk – John 2012-07-04 13:17:54