Skip to content

Latest commit

Β 

History

History
469 lines (337 loc) Β· 21 KB

README-KR.md

File metadata and controls

469 lines (337 loc) Β· 21 KB

npm

DateEx

Date 클래슀 ν™•μž₯ νŒ¨ν‚€μ§€

이 λΌμ΄λΈŒλŸ¬λ¦¬λŠ” JavaScript Date 객체λ₯Ό ν™•μž₯ν•œ κ²ƒμž…λ‹ˆλ‹€. 이 라이브러리λ₯Ό ν™œμš©ν•˜λ©΄ λ‚ μ§œ 객체λ₯Ό μ›ν•˜λŠ” ν˜•μ‹μœΌλ‘œ ν‘œν˜„ν•  수 있으며, Date 객체λ₯Ό 보닀 쉽고 자유둭게 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

date-ex λŠ” TypeScript둜 μž‘μ„±λ˜μ—ˆμœΌλ©° JavaScript μ½”λ“œλ‘œ μ»΄νŒŒμΌλ˜μ–΄ λ°°ν¬λ©λ‹ˆλ‹€. λ”°λΌμ„œ TypeScript λ¬Έλ²•μœΌλ‘œ μ‚¬μš©ν•  μˆ˜λ„ 있고 JavaScript λ¬Έλ²•μœΌλ‘œ μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

DateTime

μΌμžμ™€ μ‹œκ°μ„ ν‘œν˜„ν•©λ‹ˆλ‹€.

DateTime κ°μ²΄λŠ” new μƒμ„±μžλ‘œ μƒμ„±ν•©λ‹ˆλ‹€.

const date: DateTime = new DateTime();

μƒμ„±μžμ— 인자λ₯Ό μ „λ‹¬ν•˜λ©΄ μ›ν•˜λŠ” λ‚ μ§œλ₯Ό μ§€μ •ν•˜λ©° μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ•Œ μΈμžλŠ” undefined, null, number, string, Date, DateTime , json νƒ€μž…(DateTimeParam)을 μ§€μ›ν•©λ‹ˆλ‹€.

const newDateByNumber: DateTime = new DateTime(1603722868252);

const newDateByString: DateTime = new DateTime('2020-10-26');

const newDateByDate: DateTime = new DateTime(new Date());

const newDateByDateTime: DateTime = new DateTime(new DateTime());

const newDateByDateTimeParam: DateTime = new DateTime({
	year: 2020,
	month: 10,
	date: 26
});

κ°’ κ°€μ Έμ˜€κΈ° - κΈ°λ³Έ ν•„λ“œ

κ²Œν„° λ°˜ν™˜ νƒ€μž… κ°’ λ²”μœ„ μ„€λͺ… Date ν•¨μˆ˜
year number - 연도λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getFullYear()
month number 1 ~ 12 월을 λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getMonth()
date number 1 ~ 31 일자λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getDate()
day number 0 ~ 6 μš”μΌμ— ν•΄λ‹Ήν•˜λŠ” 숫자λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getDay()
hours number 0 ~ 23 μ‹œκ°μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getHours()
minutes number 0 ~ 59 뢄을 λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getMinutes()
seconds number 0 ~ 59 초λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getSeconds()
ms number 0 ~ 999 λ°€λ¦¬μ΄ˆλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getMilliseconds()
timezoneOffset timezone - νƒ€μž„μ‘΄ μ˜€ν”„μ…‹μ„ λΆ„ λ‹¨μœ„λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.getTimezoneOffset()
  • Date 객체와 비ꡐ해보면 νŽΈμ˜μ„±μ„ μœ„ν•΄ get- 접두사λ₯Ό μƒλž΅ν–ˆμœΌλ©° ν•¨μˆ˜ μ‹€ν–‰ ν˜•νƒœκ°€ μ•„λ‹ˆλΌ getter 방식을 μ‚¬μš©ν•©λ‹ˆλ‹€. 같은 이유둜 getMilliseconds()λŠ” ms둜 μ œκ³΅ν•©λ‹ˆλ‹€.

  • month κ²Œν„°λŠ” 0 ~ 11 값을 λ°˜ν™˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이 ν•„λ“œλŠ” μ‹€μ œ μ›” κ°’ 1 ~ 12λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

κ°’ κ°€μ Έμ˜€κΈ° - ν™•μž₯ ν•„λ“œ

κ²Œν„° λ°˜ν™˜ νƒ€μž… κ°’ λ²”μœ„ μ„€λͺ…
quarter number 1 ~ 4 λΆ„κΈ°λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
weekOfYear number 1 ~ 53 ν•΄λ‹Ή 연도λ₯Ό κΈ°μ€€μœΌλ‘œ λͺ‡μ£Όμ°¨μΈμ§€ λ°˜ν™˜ν•©λ‹ˆλ‹€.
weekOfMonth number 1 ~ 5 ν•΄λ‹Ή 월을 κΈ°μ€€μœΌλ‘œ λͺ‡μ£Όμ°¨μΈμ§€ λ°˜ν™˜ν•©λ‹ˆλ‹€.
weeksOfYear number 52 ~ 53 ν•΄λ‹Ή μ—°λ„μ˜ μ΅œλŒ€ 주차수λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
weeksOfMonth number 4 ~ 6 ν•΄λ‹Ή μ›”μ˜ μ΅œλŒ€ 주차수λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
dayOfYear number 1 ~ 365 ν•΄λ‹Ή 연도λ₯Ό κΈ°μ€€μœΌλ‘œ λͺ‡μΌμ°¨μΈμ§€ λ°˜ν™˜ν•©λ‹ˆλ‹€.
daysOfYear number 1 ~ 366 ν•΄λ‹Ή μ—°λ„μ˜ 일자 개수λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
lastDate number 28 ~ 31 ν•΄λ‹Ή μ›”μ˜ λ§ˆμ§€λ§‰ 일자λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
timezoneOffsetInHours number -12 ~ 14 νƒ€μž„μ‘΄ μ˜€ν”„μ…‹μ„ μ‹œκ° λ‹¨μœ„λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
isAm boolean true/false μ˜€μ „μ΄λ©΄ true, μ˜€ν›„μ΄λ©΄ falseλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
hours24 number 0 ~ 23 24μ‹œ κΈ°μ€€μœΌλ‘œ μ‹œκ°μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. hours와 κ°™μŠ΅λ‹ˆλ‹€.
hours12 number 0 ~ 12 12μ‹œ κΈ°μ€€μœΌλ‘œ μ‹œκ°μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

UTC ν•„λ“œ

일자, μ‹œκ°μ„ UTC(ν˜‘μ • μ„Έκ³„ν‘œμ€€μ‹œ, Coordinated Universal Time)둜 λ³€ν™˜ν•œ DateTimeλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. νƒ€μž„μ‘΄μ— 따라 연도, μ›”, 일자, μ‹œκ°μ΄ 변경될 수 μžˆμŠ΅λ‹ˆλ‹€. λΆ„, 초, λ°€λ¦¬μ΄ˆλŠ” 영ν–₯을 받지 μ•ŠμŠ΅λ‹ˆλ‹€.

UTC둜 받은 객체의 timezoneOffset은 κΈ°μ‘΄ DateTime 객체의 timezoneOffset κ°’κ³Ό κ°™μŠ΅λ‹ˆλ‹€.

const date: DateTime = new DateTime();
const utcDate: DateTime = date.UTC;

λ³€ν™˜ ν•¨μˆ˜

κ²Œν„° λ°˜ν™˜ νƒ€μž… μ„€λͺ…
valueOf() number μœ λ‹‰μŠ€ νƒ€μž„μŠ€νƒ¬ν”„λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. +new Date()와 κ°™μœΌλ©° +new DateTime()둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
toDate() Date Date ν˜•μ‹μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
toISOString() string ISO λ¬Έμžμ—΄ ν˜•μ‹μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.toISOString()κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
toUTCString() string UTC λ¬Έμžμ—΄ ν˜•μ‹μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.toUTCString()κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
toJson() object DateTimeParam ν˜•μ‹μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

κ°’ μ„€μ •ν•˜κΈ° - κ°œλ³„ ν•„λ“œ

μ„Έν„° 인자 νƒ€μž… μ„€λͺ… Date ν•¨μˆ˜
year number 연도λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. Date.setFullYear()
month number 월을 μ„€μ •ν•©λ‹ˆλ‹€. Date.setMonth()
date number 일자λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. Date.setDate()
hours number μ‹œκ°μ„ μ„€μ •λ‹ˆλ‹€. Date.setHours()
minutes number 뢄을 μ„€μ •ν•©λ‹ˆλ‹€. Date.setMinutes()
seconds number 초λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. Date.setSeconds()
ms number λ°€λ¦¬μ΄ˆλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. Date.setMilliseconds()
  • Date 객체와 비ꡐ해보면 νŽΈμ˜μ„±μ„ μœ„ν•΄ set- 접두사λ₯Ό μƒλž΅ν–ˆμœΌλ©° ν•¨μˆ˜ μ‹€ν–‰ ν˜•νƒœκ°€ μ•„λ‹ˆλΌ setter νƒ€μž…μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. 같은 이유둜 setMilliseconds()λŠ” ms둜 μ œκ³΅ν•©λ‹ˆλ‹€.

  • 연도λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ month μ„Έν„°λŠ” 0 ~ 11 값이 μ•„λ‹ˆλΌ μ‹€μ œ μ›” κ°’ 1 ~ 12둜 μ§€μ •ν•©λ‹ˆλ‹€.

set(): DateTime

DateTimeParam ν˜•μ‹μœΌλ‘œ 일자, μ‹œκ°μ„ μ„€μ •ν•©λ‹ˆλ‹€. 각 ν•„λ“œλŠ” μƒλž΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

const date: DateTime = new DateTime();

// 2020λ…„ 10μ›” 27일둜 μ„€μ •ν•©λ‹ˆλ‹€.
date.set({
	year: 2020,
	month: 10,
	date: 27
});
  • 연도λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ month μ„Έν„°λŠ” 0 ~ 11 값이 μ•„λ‹ˆλΌ μ‹€μ œ μ›” κ°’ 1 ~ 12둜 μ§€μ •ν•©λ‹ˆλ‹€.

add(param: DateTimeParam | Duration | DurationParam): DateTime

DateTime νƒ€μž…μ€ μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

DateTimeParam을 μ‚¬μš©ν•  λ•Œ

νŠΉμ • 일자, μ‹œκ°μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€. 0보닀 μž‘μ€ 값을 μ‚¬μš©ν•˜λ©΄ 이전 일자, μ‹œκ°μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€.

const date: DateTime = new DateTime();

// 11κ°œμ›” λ’€λ‘œ 일자λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
date.add({
	year: 1,
	month: -1
});

Duration을 μ‚¬μš©ν•  λ•Œ

κΈ°κ°„λ§ŒνΌ μ΄λ™ν•œ 일자, μ‹œκ°μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€. 0보닀 μž‘μ€ 값을 μ‚¬μš©ν•˜λ©΄ 이전 일자, μ‹œκ°μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€.

const date: DateTime = new DateTime();
const duration: Duration = new Duration({
	months: 11
});

// 11κ°œμ›” λ’€λ‘œ 일자λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
date.add(duration);

DurationParam을 μ‚¬μš©ν•  λ•Œ

κΈ°κ°„λ§ŒνΌ μ΄λ™ν•œ 일자, μ‹œκ°μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€. 0보닀 μž‘μ€ 값을 μ‚¬μš©ν•˜λ©΄ 이전 일자, μ‹œκ°μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€.

const date: DateTime = new DateTime();

// 11κ°œμ›” λ’€λ‘œ 일자λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
date.add({
	months: 11
});

startOf(unit): DateTime, endOf(unit): DateTime

인자둜 μ „λ‹¬ν•œ λ‹¨μœ„ κΈ°μ€€μœΌλ‘œ 처음/끝 μ‹œκ°μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

unit: year, quarter, month, week, date, hours, minutes, seconds, ms

const date: DateTime = new DateTime();

console.log(date.startOf('year').toISOString()); // 2020-01-01T00:00:00.000Z
console.log(date.endOf('year').toISOString()); // 2020-12-31T23:59:59.999Z

format(): string

주어진 ν˜•μ‹μœΌλ‘œ λ¬Έμžμ—΄μ„ κ΅¬μ„±ν•©λ‹ˆλ‹€.

토큰 토큰 λ¬Έμžμ—΄ κ²Œν„° μ„€λͺ… κ°’ λ²”μœ„
FormatToken.YearShort YY - 2자리 μ—°λ„λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 00 ~ 20, ...
FormatToken.Year YYYY year 4자리 μ—°λ„λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 1970 ~ 2020, ...
FormatToken.Quarter Q quarter λΆ„κΈ°λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 1 ~ 4
FormatToken.Month M month μ›”λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 1 ~ 12
FormatToken.MonthPadded MM - 2자리λ₯Ό μ±„μš΄ μ›”λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 01 ~ 12
FormatToken.MonthStringShort MMM - 짧은 이름 μ›”λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. Jan ~ Dec
FormatToken.MonthStringLong MMMM - κΈ΄ 이름 μ›”λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. January ~ December
FormatToken.Week W weekOfYear μ—°κΈ°μ€€ μ£Όμ°¨λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 1 ~ 53
FormatToken.WeekPadded WW - 2자리λ₯Ό μ±„μš΄ μ—°κΈ°μ€€ μ£Όμ°¨λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 01 ~ 53
FormatToken.WeekPaddedWithPrefix Www - 2자리λ₯Ό μ±„μš΄ μ—°κΈ°μ€€ 주차에 접두사 Wλ₯Ό λΆ™μ—¬μ„œ λ°˜ν™˜ν•©λ‹ˆλ‹€. W01 ~ W53
FormatToken.DayOfYear DDD dayOfYear μ—°κΈ°μ€€ 일차수둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 1 ~ 365
FormatToken.DayOfYearPadded DDDD - 3자리λ₯Ό μ±„μš΄ μ—°κΈ°μ€€ 일차수둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 001 ~ 365
FormatToken.DayOfMonth D dayOfMonth μ›”κΈ°μ€€ 일차수둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 1 ~ 31
FormatToken.DayOfMonthPadded DD - 2자리λ₯Ό μ±„μš΄ μ›”κΈ°μ€€ 일차수둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 01 ~ 31
FormatToken.DayOfWeek d day μš”μΌμ— ν•΄λ‹Ήν•˜λŠ” 숫자둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 0 ~ 6
FormatToken.DayOfWeekStringShort dd - 짧은 이름 μš”μΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. Su ~ Sa
FormatToken.DayOfWeekStringMiddle ddd - 쀑간 이름 μš”μΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. Sun ~ Sat
FormatToken.DayOfWeekStringLong dddd - κΈ΄ 이름 μš”μΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. Sunday ~ Saturday
FormatToken.MeridiemLower a - μ˜€μ „/μ˜€ν›„λ₯Ό μ†Œλ¬Έμžλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. am, pm
FormatToken.MeridiemCapital A - μ˜€μ „/μ˜€ν›„λ₯Ό λŒ€λ¬Έμžλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. AM, PM
FormatToken.Hours24 H hours, hours24 24μ‹œ κΈ°μ€€ μ‹œκ°μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 0 ~ 23
FormatToken.Hours24Padded HH - 2자리λ₯Ό μ±„μš΄ 24μ‹œ κΈ°μ€€ μ‹œκ°μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 00 ~ 23
FormatToken.Hours12 h hours12 12μ‹œ κΈ°μ€€ μ‹œκ°μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 0 ~ 12
FormatToken.Hours12Padded hh - 2자리λ₯Ό μ±„μš΄ 12μ‹œ κΈ°μ€€ μ‹œκ°μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 00 ~ 12
FormatToken.Minutes m minutes λΆ„μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 0 ~ 59
FormatToken.MinutesPadded mm - 2자리λ₯Ό μ±„μš΄ λΆ„μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 00 ~ 59
FormatToken.Seconds s seconds 초둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 0 ~ 59
FormatToken.SecondsPadded ss - 2자리λ₯Ό μ±„μš΄ 초둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 00 ~ 59
FormatToken.MilliSeconds S ms λ°€λ¦¬μ΄ˆλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 0 ~ 999
FormatToken.MilliSecondsPadded2 SS - 2자리λ₯Ό μ±„μš΄ λ°€λ¦¬μ΄ˆλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 00 ~ 99
FormatToken.MilliSecondsPadded3 SSS - 3자리λ₯Ό μ±„μš΄ λ°€λ¦¬μ΄ˆλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 000 ~ 999

λ‹€κ΅­μ–΄

DateTime의 λ‹€κ΅­μ–΄ 섀정은 μ „μ—­μœΌλ‘œ μ„€μ •ν•  수 있으며, κ°œλ³„ 객체에 μ„€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 전역에 μ„€μ •λœ 닀ꡭ어와 κ°œλ³„ 객체에 μ„€μ •λœ λ‹€κ΅­μ–΄κ°€ λ‹€λ₯΄λ©΄ κ°œλ³„ 객체에 μ„€μ •λœ λ‹€κ΅­μ–΄λ₯Ό κΈ°μ€€μœΌλ‘œ λ™μž‘ν•©λ‹ˆλ‹€.

μ „μ—­ μ„€μ •μœΌλ‘œ λ‹€κ΅­μ–΄λ₯Ό λ³€κ²½ν•œ 이후 μƒμ„±ν•˜λŠ” DateTime κ°μ²΄μ—λŠ” μ „μ—­ 섀정값이 μ μš©λ©λ‹ˆλ‹€.

console.log(DateTime.locale()); // 'en'

const date1: DateTime = new DateTime();
console.log(date1.locale()); // 'en'

DateTime.locale('ko-kr'); // μ „μ—­ λ‹€κ΅­μ–΄ μ„€μ •
console.log(DateTime.locale()); // 'ko-kr'

const date2: DateTime = new DateTime();
console.log(date2.locale()); // 'ko-kr'

const date3: DateTime = new DateTime();
date3.locale('en'); // 객체 λ‹€κ΅­μ–΄ μ„€μ •
console.log(date3.locale()); // 'en'

μ „μ—­ ν•¨μˆ˜ DateTime.locale()κ³Ό DateTime 클래슀 ν•¨μˆ˜ locale()을 μΈμžμ—†μ΄ μ‚¬μš©ν•˜λ©΄ ν˜„μž¬ μ„€μ •λœ λ‹€κ΅­μ–΄ μ½”λ“œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 그리고 μ „μ—­/객체의 λ‹€κ΅­μ–΄λ₯Ό λ³€κ²½ν•˜λ €λ©΄ locale() ν•¨μˆ˜μ— λ‹€κ΅­μ–΄ μ½”λ“œλ₯Ό μ „λ‹¬ν•˜λ©΄ λ©λ‹ˆλ‹€.

κΈ°λ³Έ 섀정은 en μž…λ‹ˆλ‹€.

주의

locale() ν•¨μˆ˜λŠ” ES6 import ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” Promise λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜κΈ° λ•Œλ¬Έμ— locale()을 μ‹€ν–‰ν•œ ν›„μ—λŠ” JavaScript 1 싸이클을 κΈ°λ‹€λ €μ•Ό λ‹€κ΅­μ–΄ 파일이 λ‘œλ“œλ©λ‹ˆλ‹€.

λ‹€κ΅­μ–΄ μ½”λ“œκ°€ μœ νš¨ν•˜μ§€ μ•Šκ±°λ‚˜ 1 싸이클 이후에 λ‹€κ΅­μ–΄ 파일 λ‘œλ“œλ₯Ό μ‹€νŒ¨ν•˜λ©΄ μ΄μ „κ°’μœΌλ‘œ μ›λ³΅λ©λ‹ˆλ‹€.

DateTime.locale(): string

μ „μ—­ λ³€μˆ˜λ‘œ λ‹€κ΅­μ–΄λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

locale(): string

객체에 λ‹€κ΅­μ–΄λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

λ‹€κ΅­μ–΄ 지원 λͺ©λ‘

μ–Έμ–΄ μ½”λ“œ 이름
en English
ko-kr Korean (Korea)

비ꡐ ν•¨μˆ˜

λͺ¨λ“  비ꡐ ν•¨μˆ˜λŠ” DateTimeUnit λ‹¨μœ„λ₯Ό 인자둜 받을 수 μžˆμŠ΅λ‹ˆλ‹€. κ³„μ‚°μ˜ μ •ν™•λ„λŠ” 이 λ‹¨μœ„λ₯Ό κΈ°μ€€μœΌλ‘œ ν•˜λ©°, λ‹¨μœ„λ₯Ό μƒλž΅ν•˜λ©΄ λ°€λ¦¬μ΄ˆ λ‹¨μœ„λ‘œ κ³„μ‚°ν•©λ‹ˆλ‹€.

ν•¨μˆ˜ λ°˜ν™˜ νƒ€μž… μ„€λͺ…
diff() number 차이값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
isEqual() boolean 인자둜 μ „λ‹¬ν•œ μΌμžμ™€ κ°™μœΌλ©΄ trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
isBefore() boolean 인자둜 μ „λ‹¬ν•œ 일자 이전이면 trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
isBeforeOrEqual() boolean 인자둜 μ „λ‹¬ν•œ 일자 μ΄μ „μ΄κ±°λ‚˜ κ°™μœΌλ©΄ trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
isAfter() boolean 인자둜 μ „λ‹¬ν•œ 일자 이후이면 trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
isAfterOrEqual() boolean 인자둜 μ „λ‹¬ν•œ 일자 μ΄ν›„κ±°λ‚˜ κ°™μœΌλ©΄ trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
isBetween() boolean 인자둜 μ „λ‹¬ν•œ 두 일자 사이에 있으면 trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
isAfterOrEqual() boolean 인자둜 μ „λ‹¬ν•œ 두 일자 사이에 μžˆκ±°λ‚˜ κ°™μœΌλ©΄ trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
const date1: DateTime = new DateTime({
	year: 2020,
	month: 10,
	date: 20
});

const date2: DateTime = new DateTime({
	year: 2020,
	month: 10,
	date: 27
});

console.log(date1.diff(date2, 'date')); // -7

console.log(date1.isEqual(date2, 'month')); // true

console.log(date1.isBefore(date2, 'date')); // true
console.log(date1.isBeforeOrEqual(date2, 'month')); // true

console.log(date1.isAfter(date2, 'date')); // false
console.log(date1.isBeforeOrEqual(date2, 'month')); // true

const date3: DateTime = new DateTime({
	year: 2020,
	month: 10,
	date: 27
});

console.log(date2.isBetween(date1, date3, 'date')); // true
console.log(date2.isBetweenOrEqual(date1, date2, 'date')); // true

DateTimeParam, DateTimeParamEx

μΌμžμ™€ μ‹œκ° 값을 ν‘œν˜„ν•˜λŠ” κ°μ²΄μž…λ‹ˆλ‹€. 이 κ°μ²΄λŠ” λ‹€μŒκ³Ό 같은 ν•„λ“œλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.

ν•„λ“œ ν•„λ“œ νƒ€μž… κ°’ λ²”μœ„ μ„€λͺ…
year number - 연도λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.
quarter number 1 ~ 4 λΆ„κΈ°λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€. (DateTimeParamExμ—λ§Œ μ‘΄μž¬ν•©λ‹ˆλ‹€.)
month number 1 ~ 12 월을 ν‘œν˜„ν•©λ‹ˆλ‹€.
week number 1 ~ 42 주차수λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€. (DateTimeParamExμ—λ§Œ μ‘΄μž¬ν•©λ‹ˆλ‹€.)
date number 1 ~ 31 일자λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.
hours number 0 ~ 23 μ‹œκ°μ„ ν‘œν˜„ν•©λ‹ˆλ‹€.
minutes number 0 ~ 59 뢄을 ν‘œν˜„ν•©λ‹ˆλ‹€.
seconds number 0 ~ 59 초λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.
ms number 0 ~ 999 λ°€λ¦¬μ΄ˆλ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.
  • month ν•„λ“œμ˜ 값은 0 ~ 11 λ²”μœ„κ°€ μ•„λ‹™λ‹ˆλ‹€. 이 ν•„λ“œλŠ” μ‹€μ œ μ›” κ°’ 1 ~ 12을 ν‘œν˜„ν•©λ‹ˆλ‹€.
  • quarter, week ν•„λ“œλŠ” DateTimeParamExμ—λ§Œ μ‘΄μž¬ν•©λ‹ˆλ‹€.

DateTimeUnit

일자, μ‹œκ° λ‹¨μœ„λ₯Ό ν‘œν˜„ν•˜λŠ” κ°’μž…λ‹ˆλ‹€.

토큰 ν•„λ“œ νƒ€μž… μ„€λͺ…
DateTimeUnit.Year year number 연도
DateTimeUnit.Quarter quarter number λΆ„κΈ°
DateTimeUnit.Month month number μ›”
DateTimeUnit.Week week number μ£Ό
DateTimeUnit.Date date number 일자
DateTimeUnit.Hours hours number μ‹œκ°„
DateTimeUnit.Minutes minutes number λΆ„
DateTimeUnit.Seconds seconds number 초
DateTimeUnit.Ms ms number λ°€λ¦¬μ΄ˆ

달λ ₯

DateTime.getYearCalendar(): YearCalendar

ν•΄λ‹Ή 연도에 ν•΄λ‹Ήν•˜λŠ” 달λ ₯을 λ°˜ν™˜ν•©λ‹ˆλ‹€. μ‹œκ°„ ν•„λ“œλŠ” λͺ¨λ‘ 0으둜 μ„€μ •λ©λ‹ˆλ‹€.

dates λ°°μ—΄μ˜ κΈΈμ΄λŠ” ν•΄λ‹Ή 연도에 μžˆλŠ” 일자 κ°œμˆ˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

DateTime.getMonthCalendar(): MonthCalendar

ν•΄λ‹Ή 연도, 월에 ν•΄λ‹Ήν•˜λŠ” 달λ ₯을 λ°˜ν™˜ν•©λ‹ˆλ‹€. μ‹œκ°„ ν•„λ“œλŠ” λͺ¨λ‘ 0으둜 μ„€μ •λ©λ‹ˆλ‹€.

dates λ°°μ—΄μ˜ κΈΈμ΄λŠ” ν•΄λ‹Ή 월에 μžˆλŠ” 일자 κ°œμˆ˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

Duration

기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.

Duration κ°μ²΄λŠ” new μƒμ„±μžλ‘œ μƒμ„±ν•©λ‹ˆλ‹€.

const duration: Duration = new Duration();

μƒμ„±μžμ— 인자λ₯Ό μ „λ‹¬ν•˜λ©΄ μ›ν•˜λŠ” 기간을 μ§€μ •ν•˜λ©° μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ•Œ μΈμžλŠ” undefined, null, number, string, Duration , json νƒ€μž…(DurationParam)을 μ§€μ›ν•©λ‹ˆλ‹€.

const newDurationByString: Duration = new Duration('PY2');

const newDurationByDuration: Duration = new Duration(new Duration());

const newDurationByDurationParam: Duration = new Duration({
	years: 2
});

κ°’ κ°€μ Έμ˜€κΈ° & κ°’ μ„€μ •ν•˜κΈ° - κ°œλ³„ ν•„λ“œ

토큰 ν•„λ“œ νƒ€μž…
DateTimeUnit.Years year number
DateTimeUnit.Months month number
DateTimeUnit.Dates date number
DateTimeUnit.Hours hours number
DateTimeUnit.Minutes minutes number
DateTimeUnit.Seconds seconds number
DateTimeUnit.Ms ms number
const duration: Duration = new Duration(); // value : {}

duration.years = 2; // value : { years : 2 }
duration.ms = 1001; // value : { years : 2, seconds : 1, ms : 1} - 자리수 μ‘°μ •

console.log(duration.seconds); // 1

add()

add (param : Duration | DurationParam) : Duration

μΈμžκ°€ Durationμ΄κ±°λ‚˜ DurationParam이면 Duration 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

add (param : DateTime | DateTimeParam) : DateTime

μΈμžκ°€ DateTimeμ΄κ±°λ‚˜ DateTimeParam이면 DateTime 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

divide(count : number) : Duration[]

전체 기간을 count 개수만큼 λ‚˜λˆ μ„œ Duration λ°°μ—΄λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.

const duration: Duration = { seconds: 1 };

console.log(duration.divide(4)); // 값이 { ms : 250 }인 Duration μΈμŠ€ν„΄μŠ€ λ°°μ—΄

DurationParam

기간을 ν‘œν˜„ν•©λ‹ˆλ‹€. 이 κ°μ²΄λŠ” λ‹€μŒκ³Ό 같은 ν•„λ“œλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.

ν•„λ“œ ν•„λ“œ νƒ€μž… κ°’ λ²”μœ„ μ„€λͺ…
years number - μ—°λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
months number 1 ~ 12 μ›”λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
dates number 1 ~ 31 μΌλ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
hours number 0 ~ 23 μ‹œκ°„λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
minutes number 0 ~ 59 λΆ„λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
seconds number 0 ~ 59 μ΄ˆλ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
ms number 0 ~ 999 λ°€λ¦¬μ΄ˆλ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.

DurationUnit

κΈ°κ°„ λ‹¨μœ„λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.

토큰 ν•„λ“œ νƒ€μž… μ„€λͺ…
DurationUnit.Years years number μ—°λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Quarters quarters number λΆ„κΈ°λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Months months number μ›”λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Weeks weeks number μ£Όλ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Dates dates number μΌλ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Hours hours number μ‹œκ°„λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Minutes minutes number λΆ„λ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Seconds seconds number μ΄ˆλ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.
DurationUnit.Ms ms number λ°€λ¦¬μ΄ˆλ‹¨μœ„ 기간을 ν‘œν˜„ν•©λ‹ˆλ‹€.