한 날짜가 두 날짜 사이에 있는지 확인 (JavaScript)
날짜 ( dd/mm/yyyy
형식 의 문자열 )가 동일한 형식을 가진 다른 두 날짜 사이 에 있는지 확인해야 합니다.dd/mm/yyyy
나는 이것을 시도했지만 작동하지 않습니다.
var dateFrom = "02/05/2013";
var dateTo = "02/09/2013";
var dateCheck = "02/07/2013";
var from = Date.parse(dateFrom);
var to = Date.parse(dateTo);
var check = Date.parse(dateCheck );
if((check <= to && check >= from)) alert("date contained");
디버거를 사용하고 확인했으며 to
및 from
변수에 isNaN
값이 있습니다. 당신이 나를 도울 수?
Date.parse
형식을 지원 mm/dd/yyyy
하지 dd/mm/yyyy
. 후자의 경우 moment.js와 같은 라이브러리를 사용하거나 아래와 같이 수행하십시오.
var dateFrom = "02/05/2013";
var dateTo = "02/09/2013";
var dateCheck = "02/07/2013";
var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var c = dateCheck.split("/");
var from = new Date(d1[2], parseInt(d1[1])-1, d1[0]); // -1 because months are from 0 to 11
var to = new Date(d2[2], parseInt(d2[1])-1, d2[0]);
var check = new Date(c[2], parseInt(c[1])-1, c[0]);
console.log(check > from && check < to)
날짜를 직접 비교하는 대신 날짜의 getTime () 값을 비교하십시오. getTime () 함수는 1970 년 1 월 1 일 이후의 밀리 초 수를 정수로 반환합니다. 하나의 정수가 다른 두 정수 사이에 속하는지 확인하는 것은 간단해야합니다.
같은 것
if((check.getTime() <= to.getTime() && check.getTime() >= from.getTime())) alert("date contained");
아래 내용을 시도해보십시오. 그것은 당신을 도울 것입니다 ...
바이올린 : http://jsfiddle.net/RYh7U/146/
스크립트 :
if(dateCheck("02/05/2013","02/09/2013","02/07/2013"))
alert("Availed");
else
alert("Not Availed");
function dateCheck(from,to,check) {
var fDate,lDate,cDate;
fDate = Date.parse(from);
lDate = Date.parse(to);
cDate = Date.parse(check);
if((cDate <= lDate && cDate >= fDate)) {
return true;
}
return false;
}
50 표가있는 답변은 몇 달 동안 만 날짜를 확인하지 않습니다. 정답이 아닙니다. 아래 코드가 작동합니다.
var dateFrom = "01/08/2017";
var dateTo = "01/10/2017";
var dateCheck = "05/09/2017";
var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var c = dateCheck.split("/");
var from = new Date(d1); // -1 because months are from 0 to 11
var to = new Date(d2);
var check = new Date(c);
alert(check > from && check < to);
이것은 다른 답변에 게시 된 코드이며 날짜를 변경했으며 작동하지 않는다는 것을 알았습니다.
var dateFrom = "02/05/2013";
var dateTo = "02/09/2013";
var dateCheck = "07/07/2013";
var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var c = dateCheck.split("/");
var from = new Date(d1[2], parseInt(d1[1])-1, d1[0]); // -1 because months are from 0 to 11
var to = new Date(d2[2], parseInt(d2[1])-1, d2[0]);
var check = new Date(c[2], parseInt(c[1])-1, c[0]);
alert(check > from && check < to);
이 시도:
HTML
<div id="eventCheck"></div>
자바 스크립트
// ----------------------------------------------------//
// Todays date
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
// Add Zero if it number is between 0-9
if(dd<10) {
dd = '0'+dd;
}
if(mm<10) {
mm = '0'+mm;
}
var today = yyyy + '' + mm + '' + dd ;
// ----------------------------------------------------//
// Day of event
var endDay = 15; // day 15
var endMonth = 01; // month 01 (January)
var endYear = 2017; // year 2017
// Add Zero if it number is between 0-9
if(endDay<10) {
endDay = '0'+endDay;
}
if(endMonth<10) {
endMonth = '0'+endMonth;
}
// eventDay - date of the event
var eventDay = endYear + '/' + endMonth + '/' + endDay;
// ----------------------------------------------------//
// ----------------------------------------------------//
// check if eventDay has been or not
if ( eventDay < today ) {
document.getElementById('eventCheck').innerHTML += 'Date has passed (event is over)'; // true
} else {
document.getElementById('eventCheck').innerHTML += 'Date has not passed (upcoming event)'; // false
}
바이올린 : https://jsfiddle.net/zm75cq2a/
다음은 typescript로 작성된 Date Prototype 메서드입니다.
Date.prototype.isBetween = isBetween;
interface Date { isBetween: typeof isBetween }
function isBetween(minDate: Date, maxDate: Date): boolean {
if (!this.getTime) throw new Error('isBetween() was called on a non Date object');
return !minDate ? true : this.getTime() >= minDate.getTime()
&& !maxDate ? true : this.getTime() <= maxDate.getTime();
};
첫 번째 대답 인 @Diode와 똑같은 일을했지만 날짜 범위로 조건을 만들었습니다.이 예제가 누군가에게 유용하기를 바랍니다.
예 (날짜 배열을 사용한 예제와 동일한 코드)
var dateFrom = "02/06/2013";
var dateTo = "02/09/2013";
var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var from = new Date(d1[2], parseInt(d1[1])-1, d1[0]); // -1 because months are from 0 to 11
var to = new Date(d2[2], parseInt(d2[1])-1, d2[0]);
var dates= ["02/06/2013", "02/07/2013", "02/08/2013", "02/09/2013", "02/07/2013", "02/10/2013", "02/011/2013"];
dates.forEach(element => {
let parts = element.split("/");
let date= new Date(parts[2], parseInt(parts[1]) - 1, parts[0]);
if (date >= from && date < to) {
console.log('dates in range', date);
}
})
주어진 날짜가 두 날짜 사이인지 아닌지 확인하는 사용자 지정 기능을 만들었습니다.
var getvalidDate = function(d){ return new Date(d) }
function validateDateBetweenTwoDates(fromDate,toDate,givenDate){
return getvalidDate(givenDate) <= getvalidDate(toDate) && getvalidDate(givenDate) >= getvalidDate(fromDate);
}
이 시도
var gdate='01-05-2014';
date =Date.parse(gdate.split('-')[1]+'-'+gdate.split('-')[0]+'-'+gdate.split('-')[2]);
if(parseInt(date) < parseInt(Date.now()))
{
alert('small');
}else{
alert('big');
}
참고 URL : https://stackoverflow.com/questions/16080378/check-if-one-date-is-between-two-dates-javascript
'Nice programing' 카테고리의 다른 글
App Store에서 앱 이름 변경 (0) | 2020.12.03 |
---|---|
PHP-배열을 클래스 상수로 사용 (0) | 2020.12.03 |
단일 UIViewController 만 가로 및 세로 방향으로 회전하도록 허용하는 방법은 무엇입니까? (0) | 2020.12.03 |
특정 URL에 대해 스프링 보안을 비활성화하는 방법 (0) | 2020.12.03 |
Angular 2에서 앱이 시작될 때 서비스를 실행하는 방법 (0) | 2020.12.03 |