Moment: isBetween์˜ ๋ฐฐํƒ€์„ฑ/๋ฐฐํƒ€์„ฑ ๋™์ž‘ ์ œ์–ด

์— ๋งŒ๋“  2015๋…„ 01์›” 16์ผ  ยท  28์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: moment/moment

isBetween ๋ฉ”์„œ๋“œ๋Š” ํ•œ ์ˆœ๊ฐ„์ด ๋‹ค๋ฅธ ๋‘ ์‹œ๊ฐ„ ์‚ฌ์ด์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์ง€๋งŒ ๋น„๊ต ์‹œ๊ฐ„ ์ค‘ ํ•˜๋‚˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์„ธ ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ ๋‹จ์œ„์ด๋ฏ€๋กœ ํฌ๊ด„์ ์ธ ์ธ์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ isBetweenInclusive ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

Enhancement Up-For-Grabs

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด์—ˆ๊ณ  ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค!!!!

๋ชจ๋“  28 ๋Œ“๊ธ€

๋‚˜๋„ ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋†€๋ผ์šด ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํฌํ•จ ๋ฐ ๋ฐฐํƒ€์  isBetween ์ค‘์—์„œ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋ถ€์šธ ์ธ์ˆ˜๋กœ ํฌํ•จ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ™˜์ƒ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ํ˜„์žฌ ์ œ๊ณต๋˜๋Š” ๊ฒƒ ๋˜๋Š” ์ œ์•ˆ๋˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด ๊ธฐ๋Šฅ์— ๋“ค์–ด๊ฐˆ ํ•„์š”๊ฐ€ ์žˆ๋Š” ์ƒ๊ฐ์ด ์กฐ๊ธˆ ๋” ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์‹œ์ž‘ ๊ฐ’์€ ํ•ญ์ƒ ํฌ๊ด„์ ์ด์ง€๋งŒ ๋ ๊ฐ’์€ _์„ธ๋ถ„์„ฑ์— ๋”ฐ๋ผ ํฌํ•จ๋˜๊ฑฐ๋‚˜ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ๊ฐ’์— ์‹œ๊ฐ„ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ์ข…๋ฃŒ ๊ฐ’์€ ๋ฐฐํƒ€์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ _ํฌํ•จ_์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค. 1์›” 1์ผ๊ณผ 1์›” 3์ผ ์‚ฌ์ด์— ๋ฉฐ์น ์ด ์žˆ๋ƒ๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๋Œ€๋‹ต์€ 3์ผ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 1์‹œ์—์„œ 3์‹œ ์‚ฌ์ด์— ๋ช‡ ์‹œ๊ฐ„์ด ์žˆ๋ƒ๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๋Œ€๋‹ต์€ 2์‹œ๊ฐ„ ์ด๋‹ค. ์ธ๊ฐ„์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๊ฒฉ ์‚ฌ์ด์˜ ๊ธฐ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•(์˜ˆ: moment#diff )๊ณผ ๊ฐ’์ด ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ’์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•(์˜ˆ: moment#inBetween )์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

moment#isBetween ์˜ ํ˜„์žฌ ๋™์ž‘์€ ์„ธ๋ถ„์„ฑ์— ๊ด€๊ณ„์—†์ด ์™„์ „ํžˆ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ณ„๋กœ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

moment#diff ์˜ ํ˜„์žฌ ๋™์ž‘์€ ์„ธ๋ถ„์„ฑ์— ๊ด€๊ณ„์—†์ด ์ฒ˜์Œ์—๋Š” ํฌํ•จ๋˜๊ณ  ๋์—์„œ๋Š” ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ๊ฐ„ ๋™์•ˆ ์œ ํšจํ•˜๊ณ  ๋ฒ„๊ทธ๋Š” ์ผ ๋™์•ˆ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ฌธ์„œ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1

์‹ค์ œ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ฒฐ๊ณผ๊ฐ€ 2์ผ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ถ๊ทน์ ์ธ ๋ฌธ์ œ๋Š” moment ๊ฐœ์ฒด๊ฐ€ ์‹œ๊ฐ„์˜ ์‹ ์ค‘ํ•œ ๋‹จ์œ„์ด์ง€๋งŒ ๋งŽ์€ ๊ฒฝ์šฐ์— ๋‹ฌ๋ ฅ์˜ ๋‚ ์งœ์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•˜๋ ค๊ณ  ํ•˜๊ณ  ์—ฌ๊ธฐ์„œ ๋ถ€์ž‘์šฉ์ด ๋‚˜ํƒ€๋‚˜๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค. 1์›” 1์ผ๊ณผ 1์›” 3์ผ ์‚ฌ์ด์— ๋ฉฐ์น ์ด ์žˆ๋ƒ๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๋Œ€๋‹ต์€ 3์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 1์‹œ์—์„œ 3์‹œ ์‚ฌ์ด์— ๋ช‡ ์‹œ๊ฐ„์ด ์žˆ๋ƒ๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๋Œ€๋‹ต์€ 2์‹œ๊ฐ„์ด๋‹ค.

๋‚˜๋Š” ๋‚ ์งœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— "1์›” 1์ผ"๊ณผ "1์›” 3์ผ" ์‚ฌ์ด์˜ ์ผ์ˆ˜๋ฅผ ๋ฌผ์„ ๋•Œ ๋…ผ๋ฆฌ์ (๊ทธ๋ฆฌ๊ณ  ๋‚˜์—๊ฒŒ ์˜ˆ์ƒ๋˜๋Š”) ๋Œ€๋‹ต์€ "2"๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์‹œ๊ฐ„์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด "1์›” 1์ผ 00:00"์—์„œ "1์›” 3์ผ 00:00" ์‚ฌ์ด์— ์ž‘๋™ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์„ธ๊ณ„์—์„œ ์ธ๊ฐ„์ด ๊ทธ ์ฐจ์ด๋ฅผ ์•Œ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ์‹ค์ œ๋กœ ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ ๋‹ค๋ฅด์ง€๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„์—์„œ ์ผ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์™€๋Š” ์•„๋ฌด ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ PHP์˜ Carbon์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋œ ๋ฐฉ๋ฒ•์ด๋ฉฐ ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ๊ฒฐ์ฝ” ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค: https://github.com/briannesbitt/Carbon/blob/master/src/Carbon/Carbon.php#L1070 -1092

๋‘ ๋ฒˆ์งธ๋กœ ๋ณ‘ํ•ฉํ•œ ๊ฒƒ์€ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ„๊ฒฉ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋™์ž‘์„ ์ง€์ •ํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ ์•„์ง ์ข‹์€ ์ œ์•ˆ์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์–‘์ชฝ ๋์€ ๋ณ„๋„๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํฌํ•จ/๋ฐฐํƒ€ ์—ฌ๋ถ€).

lt๋Š” ๋˜ํ•œ ํ˜„์žฌ ๋ฒ„์ „๊ณผ ํ•˜์œ„ ํ˜ธํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

// proposal 1
m.isBetween(a, b, "()"); // both excluded
m.isBetween(a, b, "[)"); // start included, end excluded

// proposal 2
m.isBetween(a, b, "+"); // both included
m.isBetween(a, b, "+-"); // start included, end excluded

์‹œ์ž‘์„ ์ œ์™ธํ•˜๋Š” ์‹ค์ œ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์ƒ๊ฐํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋์„ ์ œ์™ธํ• ์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๋ถ€์šธ ํ”Œ๋ž˜๊ทธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ - ์ ์ ˆํ•œ ISO 31-11 ๊ฐ„๊ฒฉ ํ‘œ๊ธฐ๋ฒ•์— ๊ฐ€๊น๊ธฐ ๋•Œ๋ฌธ์— ์ œ์•ˆ 1์„ ์ข‹์•„

// these are essential
m.isBetween(a, b, "[]"); // both included
m.isBetween(a, b, "[)"); // start included, end excluded

// these would be rarely used, but complete the syntax
m.isBetween(a, b, "()"); // both excluded
m.isBetween(a, b, "(]"); // start excluded, end included

๋‚˜๋Š” ์ œ์•ˆ 2๋ฅผ ๋ณ„๋กœ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

:+1: ์ œ์•ˆ 1์˜ ๊ฒฝ์šฐ.

์†”์งํžˆ ์–‘์ชฝ ๋์€ ์ œ์™ธํ•˜๊ณ  ๋ช…์‹œ์ ์œผ๋กœ ์ œ์™ธํ•˜๋ ค๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. "์˜ค๋Š˜๊นŒ์ง€"๋ฅผ ๋ณด๋ ค๊ณ  ํ•ด๋„ moment( date ).endOf( "day" )๋ฅผ ์ข…๋ฃŒ ๋‚ ์งœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์˜คํ›„ 11์‹œ 59๋ถ„ 59์ดˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ "์ •์ƒ" ๋ฒ”์œ„์ฒ˜๋Ÿผ ํฌํ•จ/๋ฐฐํƒ€์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด ๋ถ€์šธ ํ”Œ๋ž˜๊ทธ๋งŒ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ˜ผ๋ž€์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค. ์ข…๋ฃŒ ์‹œ๊ฐ„ _์ง์ „_ ์‹œ๊ฐ„์„ ์›ํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@mckinnsb - ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ์ด์œ ๋กœ ํ”ผํ•ฉ๋‹ˆ๋‹ค.

  1. ์ •๋ฐ€๋„๊ฐ€ ์ค‘์š”ํ•ด์ง‘๋‹ˆ๋‹ค. JavaScript์—์„œ ํ‘œ์ค€ ๋‚ ์งœ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์€ 23:59:59.999 ์ด์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” 23:59:59 ๋˜๋Š” 23:59:59.9999999 ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฌธ์ž์—ด ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐ ํ˜•์‹ ์ง€์ •์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์†Œ์Šค์˜ ๊ฐ’๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋ฏ€๋กœ ์ด๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  2. 00:00:00.000 ์—์„œ 23:59:59.999 ๊นŒ์ง€ ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•˜๋ฉด ๋ฒ”์œ„์˜ ๊ธฐ๊ฐ„์„ ์‰ฝ๊ฒŒ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์˜ duration = end - start , ๋‹น์‹ ์€ ์ง€๊ธˆ ๊ฐ™์€ ๊ฒƒ์„ ํ•  ํ•„์š”๊ฐ€ duration = end - start + epsilon ์ƒ์ˆ  ํ•œ ๋ฐ”์™€ ๊ฐ™์ด, ์—ก์‹ค๋ก ์€, ์ตœ์†Œํ•œ์˜ ์ •๋ฐ€๋„์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— "์ •์ƒ์ ์ธ" ๋ฒ”์œ„๊ฐ€ ์žˆ๋‹ค๋Š” ๋‹น์‹ ์˜ ์ง„์ˆ ์„ ๊ฑฐ๋ถ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฒ”์œ„์—๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ๋ฒ”์œ„ ์œ ํ˜•์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ํ•  ๋•Œ ๊ทธ๋“ค์˜ ํ–‰๋™์€ ์–ธ์–ด์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. "์ •์ƒ"์€ ์—†์Šต๋‹ˆ๋‹ค.

Python์˜ range ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ด quora ๊ฒŒ์‹œ๋ฌผ ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ œ์•ˆ 1์— ๋Œ€ํ•ด +1, ์ƒํ™ฉ์„ ์œ ์—ฐํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋‚ด ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Œ€๋Š” ๋‚ด๊ฐ€ SQL์—์„œ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ํฌํ•จ๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. X ์‚ฌ์ด A AND B,
ํ˜„์žฌ x.isBetween(a, b) || x.isSame(a) || x.isSame(b)

+1

+1

+1 ์ œ์•ˆ 1

+1

+1

+1

@mj1856 ๊ธฐ๋ณธ ๋™์ž‘์ด '()' ์•„๋‹Œ๊ฐ€์š”?

Is Between 2.9.0+
"Check if a moment is between two other moments, optionally looking at unit scale (minutes, hours, days, etc). **The match is exclusive.**"

isBetween ์—๋Š” ์ด๋ฏธ ์„ธ ๋ฒˆ์งธ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ๋ฐฉ๋ฒ•์€ function isBetween (from, to, units) ๋กœ ์ •์˜๋˜๋ฉฐ ์—ฌ๊ธฐ์„œ units ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด ์ œ์•ˆ์€ ๋„ค ๋ฒˆ์งธ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๊ตฌํ˜„์€ ๋‘ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ์„ธ ๋ฒˆ์งธ ์˜ต์…˜(๋ฐฐํƒ€์ /ํฌํ•จ ๋Œ€ ๋‹จ์œ„) ๋˜๋Š” ๋„ค ๊ฐ€์ง€ ๋ชจ๋‘๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์Œ):

() = x.isBetween(start, end) //์™„์ „ํžˆ ๋ฐฐํƒ€์ ์ž„ - ํ˜„์žฌ ๊ธฐ๋ณธ ๊ตฌํ˜„
(] = x.isAfter(start) && x.isSameOrBefore(end) //์™ผ์ชฝ ์ œ์™ธ, ์˜ค๋ฅธ์ชฝ ํฌํ•จ
[) = x.isSameOrAfter(start) && x.isBefore(end) //์™ผ์ชฝ ํฌํ•จ, ์˜ค๋ฅธ์ชฝ ์ œ์™ธ
[] = !(x.isBefore(a) || x.isAfter(b)) //์™„์ „ํžˆ ํฌํ•จ

์•„๋งˆ๋„ ์ฝ๊ธฐ ์‰ฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

() = x.isBetween(a,b)
(] = x.isBetween(a,b) || x.isSame(b)
[) = x.isSame(a) || x.isBetween(a,b)
[] = x.isBetween(a, b) || x.isSame(a) || x.isSame(b) // !(x.isBefore(a) || x.isAfter(b))์™€ ๋™์ผ

์„ธ ๋ฒˆ์งธ์™€ ๋„ค ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ชจ๋‘ ์„ ํƒ ์‚ฌํ•ญ์ด๋ฏ€๋กœ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

var options = {
   units: 'milliseconds', // 'year', 'month', etc.
   inclusive: '{)' // '{}', '()', '(}', '{)'
}
m.isBetween(start, end, options)

์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ ๋‹จ์œ„๋Š” ๋ฐ€๋ฆฌ์ดˆ์ด๊ณ  ๊ธฐ๋ณธ ํฌํ•จ์€ () ์ž…๋‹ˆ๋‹ค.

์  ์žฅ.. ๋„ค ๋ง์ด ๋งž์•„. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์“ฐ๋Š” ์ค‘...

์žก์•„๋จน์„ ์ˆ˜ ์žˆ๋„๋ก ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ƒ ์‚ฌ์šฉ๋ฒ•์€ ์œ„์˜ ์ œ์•ˆ 1๊ณผ ๊ฐ™์œผ๋ฉฐ isBetween , '[]' , '[)' , '()' ์ค‘ ํ•˜๋‚˜๋ฅผ ํฌํ•จํ•˜๋Š” _fourth_ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. '(]' . ์—ฌ๊ธฐ์—๋Š” ๋„ค ๊ฐ€์ง€ ๋ชจ๋‘์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „๋‹ฌ๋˜์ง€ ์•Š์„ ๋•Œ์˜ ๊ธฐ๋ณธ๊ฐ’์€ '()' ์™€ ๊ฐ™์•„์•ผ ํ•˜๋ฉฐ ์ด๋Š” ํ˜„์žฌ ๋™์ž‘์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

WRT ์˜ต์…˜ - ๋‚˜๋Š” ์ •๋ง๋กœ ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์— null ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ๋„ค ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์–ป๊ฑฐ๋‚˜, ์•Œ๋ ค์ง„ ๊ฐ’์œผ๋กœ ์ œํ•œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ๋ชฉ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ธ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋˜๋Š” ๋„ค ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜ ๊ฐœ์ฒด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„์ž๊ฐ€ ๊ฐ€์žฅ ์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ด๋“  - ๋˜๋Š” ๋„๋Œ€์ฒด, ๋‹น์‹ ์€ ์œ„์˜ ๋ชจ๋“  ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ํ™•๊ณ ํ•œ ์˜๊ฒฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋Š” ํ•œ. :)

PR #2943์˜ ์ข‹์€ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ PR์—์„œ ์ด๊ฒƒ์„ ์ถ”์ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

+1

์˜ค๋Š˜ @darrenjennings ์ปค๋ฐ‹์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉด ์ •๋ง ์ข‹์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

v2.13์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค๋Š” ๋ง์”€์ด์‹ ๊ฐ€์š”? @rbreier
https://momentjs.com/docs/#/query/is - ์‚ฌ์ด/

๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ์ œ๊ฐ€ ์ฐพ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ •๋ง ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—…๋ฐ์ดํŠธํ–ˆ๊ณ  ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด์—ˆ๊ณ  ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค!!!!

๋‘ ๋ฒˆ์งธ๋กœ ๋ณ‘ํ•ฉํ•œ ๊ฒƒ์€ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ„๊ฒฉ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋™์ž‘์„ ์ง€์ •ํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ ์•„์ง ์ข‹์€ ์ œ์•ˆ์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์–‘์ชฝ ๋์€ ๋ณ„๋„๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํฌํ•จ/๋ฐฐํƒ€ ์—ฌ๋ถ€).

lt๋Š” ๋˜ํ•œ ํ˜„์žฌ ๋ฒ„์ „๊ณผ ํ•˜์œ„ ํ˜ธํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

// proposal 1
m.isBetween(a, b, "()"); // both excluded
m.isBetween(a, b, "[)"); // start included, end excluded

// proposal 2
m.isBetween(a, b, "+"); // both included
m.isBetween(a, b, "+-"); // start included, end excluded

console.log('isBetweenFlag', moment('2010-10-19').isBetween('2010-10-19', '2010-10-25',"+"));

์œ„์˜ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•  ๋•Œ ์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์กฐ๊ฑด์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐ๋„ 6์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰