Moment.js : 날짜 사이의 날짜
주어진 날짜가 두 날짜 사이에 있으면 Moment.js로 판단합니다. 버전 2.0.0 이후, 팀 추가 isBefore()
및 isAfter()
날짜 비교.
isBetween()
방법 이 때문에 이것이 효과가 입증되었습니다.
var date = moment("15/02/2013", "DD/MM/YYYY");
var startDate = moment("12/01/2013", "DD/MM/YYYY");
var endDate = moment("15/01/2013", "DD/MM/YYYY");
if (date.isBefore(endDate)
&& date.isAfter(startDate)
|| (date.isSame(startDate) || date.isSame(endDate))
) {
alert("Yay!");
} else {
alert("Nay! :(");
}
나는 확신하기 위해 더 나은 방법이 있다고 확신한다. 어떤 아이디어?
moment- > moment-range 중 하나를 사용 하여 날짜 범위를 처리 할 수 있습니다.
var startDate = new Date(2013, 1, 12)
, endDate = new Date(2013, 1, 15)
, date = new Date(2013, 2, 15)
, range = moment().range(startDate, endDate);
range.contains(date); // false
에서 버전 2.9+ 거기입니다 isBetween
기능을하지만, 독점이다 :
var compareDate = moment("15/02/2013", "DD/MM/YYYY");
var startDate = moment("12/01/2013", "DD/MM/YYYY");
var endDate = moment("15/01/2013", "DD/MM/YYYY");
// omitting the optional third parameter, 'units'
compareDate.isBetween(startDate, endDate); //false in this case
많은 인 해결 방법이 있습니다 ...
x.isBetween(a, b) || x.isSame(a) || x.isSame(b)
... 위치로 다음과 가변적입니다.
!(x.isBefore(a) || x.isAfter(b))
에서 버전 2.13isBetween
함수는 네 번째의 구독 변수가 있습니다 inclusivity
.
다음과 같이 사용하십시오.
target.isBetween(start, finish, 'days', '()') // default exclusive
target.isBetween(start, finish, 'days', '(]') // right inclusive
target.isBetween(start, finish, 'days', '[)') // left inclusive
target.isBetween(start, finish, 'days', '[]') // all inclusive
고려할 추가 단위 : years, months, days, hours, minutes, seconds, milliseconds
참고 : 단위는 여전히 선택 사항입니다. null
세 번째 인수로 사용 하여 밀리 초가 기본 단위 인 단위를 무시합니다.
당신이 사용할 수있는
moment().isSameOrBefore(Moment|String|Number|Date|Array);
moment().isSameOrAfter(Moment|String|Number|Date|Array);
또는
moment().isBetween(moment-like, moment-like);
여기를 참조하십시오 : http://momentjs.com/docs/#/query/
나는 그것을 믿는다
if (startDate <= date && date <= endDate) {
alert("Yay");
} else {
alert("Nay! :(");
}
너무 작동합니다 ...
좋은 소식 여러분, isBetween
기능이 있습니다! 라이브러리 업데이트;)
http://momentjs.com/docs/#/query/is-between/
moment.isBetween 함수 (포괄 성)의 네 번째 변수를 사용하십시오. 예 :
var startDate = moment("15/02/2013", "DD/MM/YYYY");
var endDate = moment("20/02/2013", "DD/MM/YYYY");
var testDate = moment("15/02/2013", "DD/MM/YYYY");
testDate.isBetween(startDate, endDate, 'days', true); // will return true
testDate.isBetween(startDate, endDate, 'days', false); // will return false
if (date.isBefore(endDate)
&& date.isAfter(startDate)
|| (date.isSame(startDate) || date.isSame(endDate))
동일
if (!(date.isBefore(startDate) || date.isAfter(endDate)))
몇 줄의 코드와 (경우에 따라) 메서드 호출을 절약 할 수 있습니다.
한두 번만 수행하려는 경우 전체를 가져 오는 것보다 쉬울 수 있습니다.
순간 js의 문서에 따라,
Rob Dawson이 작성한 Precise Range 플러그인을 사용하여 날짜 / 시간 범위의 정확하고 사람이 읽을 수있는 표현을 표시 할 수 있습니다. URL : http://codebox.org.uk/pages/moment-date-range-plugin
moment("2014-01-01 12:00:00").preciseDiff("2015-03-04 16:05:06");
// 1 year 2 months 3 days 4 hours 5 minutes 6 seconds
moment.preciseDiff("2014-01-01 12:00:00", "2014-04-20 12:00:00");
// 3 months 19 days
참고 URL : https://stackoverflow.com/questions/14897571/moment-js-date-between-dates
'IT' 카테고리의 다른 글
C #에서 컴퓨터 경고 어떻게 만들 수 있습니까? (0) | 2020.08.18 |
---|---|
UILabel에서 터치 이벤트를 처리하고 IBAction에 연결 (0) | 2020.08.18 |
Eclipse 코드 줄 수 (0) | 2020.08.18 |
목록을 쉼표로 구분하는 가장 명확한 방법은 무엇입니까? (0) | 2020.08.18 |
Pandas DataFrame에서 열 값 경향 (0) | 2020.08.18 |