InfoGrab DocsInfoGrab Docs

Luxon으로 날짜와 시간 다루기

요약

Luxon은 날짜와 시간을 더 쉽게 다룰 수 있게 해주는 JavaScript 라이브러리입니다. n8n은 노드 간에 날짜를 문자열로 전달하므로, 이를 파싱해야 합니다. Luxon은 JavaScript 라이브러리입니다. Luxon은 n8n의 시간대를 사용합니다.

Luxon은 날짜와 시간을 더 쉽게 다룰 수 있게 해주는 JavaScript 라이브러리입니다. Luxon 사용법에 대한 전체 세부 정보는 Luxon 문서를 참고하세요.

n8n은 노드 간에 날짜를 문자열로 전달하므로, 이를 파싱해야 합니다. Luxon을 사용하면 이 작업이 더 쉬워집니다.

Note

Python 지원

Luxon은 JavaScript 라이브러리입니다. n8n이 생성하는 두 가지 편의 변수는 Code node에서 Python을 사용할 때도 사용할 수 있지만, 그 기능은 제한적입니다.

  • 이러한 변수에 대해 Luxon 연산을 수행할 수 없습니다. 예를 들어, $today.minus(...)에 해당하는 Python 표현은 없습니다.
  • 날짜 문자열을 Luxon으로 변환과 같은 일반적인 Luxon 기능은 Python 사용자에게 제공되지 않습니다.

n8n에서 날짜와 시간의 동작 방식#

다음 사항에 유의하세요.

  • 워크플로에서 n8n은 노드 사이에서 날짜와 시간을 문자열로 변환합니다. 다른 노드에서 가져온 날짜와 시간으로 산술 연산을 할 때 이 점을 염두에 두어야 합니다.
  • n8n에서는 Luxon의 DateTime()을 사용하는 것이 권장되는 방식입니다. 순수 JavaScript의 Date()를 사용하면 일부 n8n 기능이 제대로 동작하지 않습니다. 예를 들어, 워크플로별 시간대 설정을 반영하지 않습니다.
  • 순수 JavaScript에서는 new Date('2019-06-23')로 문자열을 날짜로 변환할 수 있습니다. Luxon에서는 DateTime.fromISO('2019-06-23')DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")처럼 형식을 명시적으로 지정하는 함수를 사용해야 합니다.

n8n에서 시간대 설정하기#

Luxon은 n8n의 시간대를 사용합니다. 이 값은 다음 중 하나입니다.

  • 기본값: America/New York
  • GENERIC_TIMEZONE 환경 변수로 설정한 n8n 인스턴스의 사용자 지정 시간대
  • 워크플로 설정에서 구성한 개별 워크플로의 사용자 지정 시간대

자주 사용하는 작업#

이 섹션에서는 몇 가지 일반적인 작업에 대한 예제를 제공합니다. 더 많은 예제와 자세한 안내는 Luxon 공식 문서에서 확인할 수 있습니다.

현재 날짜/시간 또는 날짜 가져오기#

현재 시간이나 날짜를 가져오려면 $now$today Luxon 객체를 사용하세요.

  • now: 현재 타임스탬프를 담고 있는 Luxon 객체입니다. DateTime.now()와 동일합니다.
  • today: 현재 타임스탬프를 하루 단위로 내림한 값을 담고 있는 Luxon 객체입니다. DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 })과 동일합니다.

이러한 변수는 문자열로 변환될 때 서로 다른 시간 형식을 반환할 수 있다는 점에 유의하세요.

Expressions (JavaScript)

{{$now}}
// n8n displays the ISO formatted timestamp
// For example 2022-03-09T14:02:37.065+00:00
{{"Today's date is " + $now}}
// n8n displays "Today's date is <unix timestamp>"
// For example "Today's date is 1646834498755"

Code node (JavaScript)

$now
// n8n displays 
// For example 2022-03-09T14:00:25.058+00:00
let rightNow = "Today's date is " + $now
// n8n displays "Today's date is <unix timestamp>"
// For example "Today's date is 1646834498755"

Code node (Python)

_now
# n8n displays 
# For example 2022-03-09T14:00:25.058+00:00
rightNow = "Today's date is " + str(_now)
# n8n displays "Today's date is <unix timestamp>"
# For example "Today's date is 1646834498755"

n8n은 표현식에서 날짜 데이터 변환을 지원하는 내장 편의 함수를 제공합니다. 자세한 내용은 표현식 참조를 확인하세요.

JavaScript 날짜를 Luxon으로 변환하기#

네이티브 JavaScript 날짜를 Luxon 날짜로 변환하려면 다음과 같이 합니다.

  • 표현식에서는 .toDateTime() 메서드를 사용합니다. 예: {{ (new Date()).toDateTime() }}.
  • Code node에서는 DateTime.fromJSDate()를 사용합니다. 예: let luxondate = DateTime.fromJSDate(new Date()).

날짜 문자열을 Luxon으로 변환하기#

날짜 문자열이나 다른 날짜 형식을 Luxon DateTime 객체로 변환할 수 있습니다. 표준 형식뿐 아니라 임의의 문자열에서도 변환할 수 있습니다.

Note

Luxon DateTime과 JavaScript Date의 차이

순수 JavaScript에서는 new Date('2019-06-23')로 문자열을 날짜로 변환할 수 있습니다. Luxon에서는 DateTime.fromISO('2019-06-23')DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")처럼 형식을 명시적으로 지정하는 함수를 사용해야 합니다.

지원되는 표준 기술 형식의 날짜가 있는 경우:#

대부분의 날짜는 fromISO()를 사용합니다. 이 함수는 ISO 8601 문자열로부터 Luxon DateTime을 생성합니다. 예를 들면 다음과 같습니다.

Expressions (JavaScript)

{{DateTime.fromISO('2019-06-23T00:00:00.00')}}

Code node (JavaScript)

let luxonDateTime = DateTime.fromISO('2019-06-23T00:00:00.00')

Luxon의 API 문서에서 fromISO에 대한 더 자세한 정보를 확인할 수 있습니다.

Luxon은 다양한 형식의 변환을 처리하는 함수를 제공합니다. 자세한 내용은 Luxon의 기술 형식 파싱 가이드를 참고하세요.

표준 형식을 사용하지 않는 문자열 형태의 날짜가 있는 경우:#

Luxon의 애드혹 파싱을 사용하세요. 이를 위해서는 문자열과 형식을 설명하는 토큰 집합을 제공하는 fromFormat() 함수를 사용합니다.

예를 들어, n8n의 창립일인 2019년 6월 23일이 23-06-2019 형식으로 되어 있고, 이를 Luxon 객체로 변환하려는 경우입니다.

Expressions (JavaScript)

{{DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")}}

Code node (JavaScript)

let newFormat = DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")

애드혹 파싱을 사용할 때는 Luxon의 제한 사항 관련 경고를 참고하세요. 예상치 못한 결과가 나타난다면, 디버깅 가이드를 확인해보세요.

오늘로부터 n일 구하기#

오늘 이전 또는 이후의 특정 일수를 구합니다.

Expressions (JavaScript)

예를 들어, 필드가 항상 현재 날짜로부터 7일 전 날짜를 표시하도록 설정하고 싶다고 가정합니다.

표현식 편집기에 다음을 입력합니다.

{{$today.minus({days: 7})}}

2019년 6월 23일에는 [Object: "2019-06-16T00:00:00.000+00:00"]을 반환합니다.

이 예제에서는 편의를 위해 n8n의 커스텀 변수 $today를 사용합니다. 이는 DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).minus({days: 7})와 동일합니다.

Code node (JavaScript)

예를 들어, 현재 날짜로부터 7일 전 날짜를 담은 변수가 필요하다고 가정합니다.

코드 편집기에 다음을 입력합니다.

let sevenDaysAgo = $today.minus({days: 7})

2019년 6월 23일에는 [Object: "2019-06-16T00:00:00.000+00:00"]을 반환합니다.

이 예제에서는 편의를 위해 n8n의 커스텀 변수 $today를 사용합니다. 이는 DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).minus({days: 7})와 동일합니다.

더 자세한 정보와 예제는 다음을 참고하세요.

사람이 읽기 쉬운 날짜 만들기#

오늘로부터 n일 구하기의 예제에서는 현재 날짜로부터 7일 전의 날짜를 구해 [Object: "yyyy-mm-dd-T00:00:00.000+00:00"](표현식의 경우) 또는 yyyy-mm-dd-T00:00:00.000+00:00(Code node의 경우)로 반환합니다. 이를 더 읽기 쉽게 만들려면 Luxon의 포맷팅 함수를 사용할 수 있습니다.

예를 들어, 날짜를 담은 필드가 DD/MM/YYYY 형식으로 표시되기를 원한다면, 2019년 6월 23일에는 23/06/2019를 반환하게 됩니다.

이 표현식은 오늘로부터 7일 전 날짜를 구한 뒤, DD/MM/YYYY 형식으로 변환합니다.

Expressions (JavaScript)

{{$today.minus({days: 7}).toLocaleString()}}

Code node (JavaScript)

let readableSevenDaysAgo = $today.minus({days: 7}).toLocaleString()

형식을 변경할 수도 있습니다. 예를 들면 다음과 같습니다.

Expressions (JavaScript)

{{$today.minus({days: 7}).toLocaleString({month: 'long', day: 'numeric', year: 'numeric'})}}

2019년 6월 23일에는 "16 June 2019"를 반환합니다.

Code node (JavaScript)

let readableSevenDaysAgo = $today.minus({days: 7}).toLocaleString({month: 'long', day: 'numeric', year: 'numeric'})

2019년 6월 23일에는 "16 June 2019"를 반환합니다.

자세한 내용은 Luxon의 toLocaleString(사람이 읽기 쉬운 문자열) 가이드를 참고하세요.

두 날짜 사이의 시간 구하기#

두 날짜 사이의 시간을 구하려면 Luxon의 diff(차이) 기능을 사용하세요. 이 기능은 한 날짜에서 다른 날짜를 빼서 기간(duration)을 반환합니다.

예를 들어, 두 날짜 사이의 개월 수를 구해보겠습니다.

Expressions (JavaScript)

{{DateTime.fromISO('2019-06-23').diff(DateTime.fromISO('2019-05-23'), 'months').toObject()}}

이는 [Object: {"months":1}]을 반환합니다.

Code node (JavaScript)

let monthsBetweenDates = DateTime.fromISO('2019-06-23').diff(DateTime.fromISO('2019-05-23'), 'months').toObject()

이는 {"months":1}을 반환합니다.

자세한 내용은 Luxon의 Diffs를 참고하세요.

더 긴 예제: 크리스마스까지 며칠 남았을까?#

이 예제는 여러 Luxon 기능을 함께 사용하고, JMESPath를 활용하며, 기본적인 문자열 조작을 수행합니다.

시나리오: 12월 25일까지 남은 날짜를 카운트다운하고 싶습니다. 매일 크리스마스까지 남은 일수를 알려주어야 하며, 매년 업데이트할 필요 없이 모든 연도에 대해 원활하게 동작해야 합니다.

Expressions (JavaScript)

{{"There are " + $today.diff(DateTime.fromISO($today.year + '-12-25'), 'days').toObject().days.toString().substring(1) + " days to Christmas!"}}

이는 "There are <number of days> days to Christmas!"를 출력합니다. 예를 들어 3월 9일에는 "There are 291 days to Christmas!"를 출력합니다.

이 표현식이 하는 일에 대한 자세한 설명입니다.

  • {{: 표현식의 시작을 나타냅니다.
  • "There are ": 문자열입니다.
  • +: 두 문자열을 결합하는 데 사용됩니다.
  • $today.diff(): 두 날짜 사이의 시간 구하기의 예제와 유사하지만, n8n의 커스텀 $today 변수를 사용합니다.
  • DateTime.fromISO($today.year + '-12-25'), 'days': 이 부분은 $today.year를 사용해 현재 연도를 가져오고, 월과 일을 붙여 ISO 문자열로 만든 다음, 이 전체 ISO 문자열을 Luxon DateTime 데이터 구조로 변환합니다. 또한 Luxon에게 일(days) 단위의 기간을 원한다고 알려줍니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<number-of-days>}]를 반환합니다. 예를 들어 3월 9일에는 [Object: {"days":-291}]입니다.
  • .days는 JMESPath 문법을 사용해 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참고하세요. 이렇게 하면 크리스마스까지 남은 일수를 음수로 얻게 됩니다.
  • .toString().substring(1)은 숫자를 문자열로 바꾸고 -를 제거합니다.
  • + " days to Christmas!": 이전 문자열과 결합하기 위해 +를 사용하는 또 다른 문자열입니다.
  • }}: 표현식의 끝을 나타냅니다.

Code node (JavaScript)

let daysToChristmas = "There are " + $today.diff(DateTime.fromISO($today.year + '-12-25'), 'days').toObject().days.toString().substring(1) + " days to Christmas!";

이는 "There are <number of days> days to Christmas!"를 출력합니다. 예를 들어 3월 9일에는 "There are 291 days to Christmas!"를 출력합니다.

이 코드가 하는 일에 대한 자세한 설명입니다.

  • "There are ": 문자열입니다.
  • +: 두 문자열을 결합하는 데 사용됩니다.
  • $today.diff(): 두 날짜 사이의 시간 구하기의 예제와 유사하지만, n8n의 커스텀 $today 변수를 사용합니다.
  • DateTime.fromISO($today.year + '-12-25'), 'days': 이 부분은 $today.year를 사용해 현재 연도를 가져오고, 월과 일을 붙여 ISO 문자열로 만든 다음, 이 전체 ISO 문자열을 Luxon DateTime 데이터 구조로 변환합니다. 또한 Luxon에게 일(days) 단위의 기간을 원한다고 알려줍니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<number-of-days>}]를 반환합니다. 예를 들어 3월 9일에는 [Object: {"days":-291}]입니다.
  • .days는 JMESPath 문법을 사용해 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참고하세요. 이렇게 하면 크리스마스까지 남은 일수를 음수로 얻게 됩니다.
  • .toString().substring(1)은 숫자를 문자열로 바꾸고 -를 제거합니다.
  • + " days to Christmas!": 이전 문자열과 결합하기 위해 +를 사용하는 또 다른 문자열입니다.

Luxon으로 날짜와 시간 다루기

n8n v2.29
원문 보기
요약

Luxon은 날짜와 시간을 더 쉽게 다룰 수 있게 해주는 JavaScript 라이브러리입니다. n8n은 노드 간에 날짜를 문자열로 전달하므로, 이를 파싱해야 합니다. Luxon은 JavaScript 라이브러리입니다. Luxon은 n8n의 시간대를 사용합니다.

Luxon은 날짜와 시간을 더 쉽게 다룰 수 있게 해주는 JavaScript 라이브러리입니다. Luxon 사용법에 대한 전체 세부 정보는 Luxon 문서를 참고하세요.

n8n은 노드 간에 날짜를 문자열로 전달하므로, 이를 파싱해야 합니다. Luxon을 사용하면 이 작업이 더 쉬워집니다.

Note

Python 지원

Luxon은 JavaScript 라이브러리입니다. n8n이 생성하는 두 가지 편의 변수는 Code node에서 Python을 사용할 때도 사용할 수 있지만, 그 기능은 제한적입니다.

  • 이러한 변수에 대해 Luxon 연산을 수행할 수 없습니다. 예를 들어, $today.minus(...)에 해당하는 Python 표현은 없습니다.
  • 날짜 문자열을 Luxon으로 변환과 같은 일반적인 Luxon 기능은 Python 사용자에게 제공되지 않습니다.

n8n에서 날짜와 시간의 동작 방식#

다음 사항에 유의하세요.

  • 워크플로에서 n8n은 노드 사이에서 날짜와 시간을 문자열로 변환합니다. 다른 노드에서 가져온 날짜와 시간으로 산술 연산을 할 때 이 점을 염두에 두어야 합니다.
  • n8n에서는 Luxon의 DateTime()을 사용하는 것이 권장되는 방식입니다. 순수 JavaScript의 Date()를 사용하면 일부 n8n 기능이 제대로 동작하지 않습니다. 예를 들어, 워크플로별 시간대 설정을 반영하지 않습니다.
  • 순수 JavaScript에서는 new Date('2019-06-23')로 문자열을 날짜로 변환할 수 있습니다. Luxon에서는 DateTime.fromISO('2019-06-23')DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")처럼 형식을 명시적으로 지정하는 함수를 사용해야 합니다.

n8n에서 시간대 설정하기#

Luxon은 n8n의 시간대를 사용합니다. 이 값은 다음 중 하나입니다.

  • 기본값: America/New York
  • GENERIC_TIMEZONE 환경 변수로 설정한 n8n 인스턴스의 사용자 지정 시간대
  • 워크플로 설정에서 구성한 개별 워크플로의 사용자 지정 시간대

자주 사용하는 작업#

이 섹션에서는 몇 가지 일반적인 작업에 대한 예제를 제공합니다. 더 많은 예제와 자세한 안내는 Luxon 공식 문서에서 확인할 수 있습니다.

현재 날짜/시간 또는 날짜 가져오기#

현재 시간이나 날짜를 가져오려면 $now$today Luxon 객체를 사용하세요.

  • now: 현재 타임스탬프를 담고 있는 Luxon 객체입니다. DateTime.now()와 동일합니다.
  • today: 현재 타임스탬프를 하루 단위로 내림한 값을 담고 있는 Luxon 객체입니다. DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 })과 동일합니다.

이러한 변수는 문자열로 변환될 때 서로 다른 시간 형식을 반환할 수 있다는 점에 유의하세요.

Expressions (JavaScript)

{{$now}}
// n8n displays the ISO formatted timestamp
// For example 2022-03-09T14:02:37.065+00:00
{{"Today's date is " + $now}}
// n8n displays "Today's date is <unix timestamp>"
// For example "Today's date is 1646834498755"

Code node (JavaScript)

$now
// n8n displays 
// For example 2022-03-09T14:00:25.058+00:00
let rightNow = "Today's date is " + $now
// n8n displays "Today's date is <unix timestamp>"
// For example "Today's date is 1646834498755"

Code node (Python)

_now
# n8n displays 
# For example 2022-03-09T14:00:25.058+00:00
rightNow = "Today's date is " + str(_now)
# n8n displays "Today's date is <unix timestamp>"
# For example "Today's date is 1646834498755"

n8n은 표현식에서 날짜 데이터 변환을 지원하는 내장 편의 함수를 제공합니다. 자세한 내용은 표현식 참조를 확인하세요.

JavaScript 날짜를 Luxon으로 변환하기#

네이티브 JavaScript 날짜를 Luxon 날짜로 변환하려면 다음과 같이 합니다.

  • 표현식에서는 .toDateTime() 메서드를 사용합니다. 예: {{ (new Date()).toDateTime() }}.
  • Code node에서는 DateTime.fromJSDate()를 사용합니다. 예: let luxondate = DateTime.fromJSDate(new Date()).

날짜 문자열을 Luxon으로 변환하기#

날짜 문자열이나 다른 날짜 형식을 Luxon DateTime 객체로 변환할 수 있습니다. 표준 형식뿐 아니라 임의의 문자열에서도 변환할 수 있습니다.

Note

Luxon DateTime과 JavaScript Date의 차이

순수 JavaScript에서는 new Date('2019-06-23')로 문자열을 날짜로 변환할 수 있습니다. Luxon에서는 DateTime.fromISO('2019-06-23')DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")처럼 형식을 명시적으로 지정하는 함수를 사용해야 합니다.

지원되는 표준 기술 형식의 날짜가 있는 경우:#

대부분의 날짜는 fromISO()를 사용합니다. 이 함수는 ISO 8601 문자열로부터 Luxon DateTime을 생성합니다. 예를 들면 다음과 같습니다.

Expressions (JavaScript)

{{DateTime.fromISO('2019-06-23T00:00:00.00')}}

Code node (JavaScript)

let luxonDateTime = DateTime.fromISO('2019-06-23T00:00:00.00')

Luxon의 API 문서에서 fromISO에 대한 더 자세한 정보를 확인할 수 있습니다.

Luxon은 다양한 형식의 변환을 처리하는 함수를 제공합니다. 자세한 내용은 Luxon의 기술 형식 파싱 가이드를 참고하세요.

표준 형식을 사용하지 않는 문자열 형태의 날짜가 있는 경우:#

Luxon의 애드혹 파싱을 사용하세요. 이를 위해서는 문자열과 형식을 설명하는 토큰 집합을 제공하는 fromFormat() 함수를 사용합니다.

예를 들어, n8n의 창립일인 2019년 6월 23일이 23-06-2019 형식으로 되어 있고, 이를 Luxon 객체로 변환하려는 경우입니다.

Expressions (JavaScript)

{{DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")}}

Code node (JavaScript)

let newFormat = DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")

애드혹 파싱을 사용할 때는 Luxon의 제한 사항 관련 경고를 참고하세요. 예상치 못한 결과가 나타난다면, 디버깅 가이드를 확인해보세요.

오늘로부터 n일 구하기#

오늘 이전 또는 이후의 특정 일수를 구합니다.

Expressions (JavaScript)

예를 들어, 필드가 항상 현재 날짜로부터 7일 전 날짜를 표시하도록 설정하고 싶다고 가정합니다.

표현식 편집기에 다음을 입력합니다.

{{$today.minus({days: 7})}}

2019년 6월 23일에는 [Object: "2019-06-16T00:00:00.000+00:00"]을 반환합니다.

이 예제에서는 편의를 위해 n8n의 커스텀 변수 $today를 사용합니다. 이는 DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).minus({days: 7})와 동일합니다.

Code node (JavaScript)

예를 들어, 현재 날짜로부터 7일 전 날짜를 담은 변수가 필요하다고 가정합니다.

코드 편집기에 다음을 입력합니다.

let sevenDaysAgo = $today.minus({days: 7})

2019년 6월 23일에는 [Object: "2019-06-16T00:00:00.000+00:00"]을 반환합니다.

이 예제에서는 편의를 위해 n8n의 커스텀 변수 $today를 사용합니다. 이는 DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).minus({days: 7})와 동일합니다.

더 자세한 정보와 예제는 다음을 참고하세요.

사람이 읽기 쉬운 날짜 만들기#

오늘로부터 n일 구하기의 예제에서는 현재 날짜로부터 7일 전의 날짜를 구해 [Object: "yyyy-mm-dd-T00:00:00.000+00:00"](표현식의 경우) 또는 yyyy-mm-dd-T00:00:00.000+00:00(Code node의 경우)로 반환합니다. 이를 더 읽기 쉽게 만들려면 Luxon의 포맷팅 함수를 사용할 수 있습니다.

예를 들어, 날짜를 담은 필드가 DD/MM/YYYY 형식으로 표시되기를 원한다면, 2019년 6월 23일에는 23/06/2019를 반환하게 됩니다.

이 표현식은 오늘로부터 7일 전 날짜를 구한 뒤, DD/MM/YYYY 형식으로 변환합니다.

Expressions (JavaScript)

{{$today.minus({days: 7}).toLocaleString()}}

Code node (JavaScript)

let readableSevenDaysAgo = $today.minus({days: 7}).toLocaleString()

형식을 변경할 수도 있습니다. 예를 들면 다음과 같습니다.

Expressions (JavaScript)

{{$today.minus({days: 7}).toLocaleString({month: 'long', day: 'numeric', year: 'numeric'})}}

2019년 6월 23일에는 "16 June 2019"를 반환합니다.

Code node (JavaScript)

let readableSevenDaysAgo = $today.minus({days: 7}).toLocaleString({month: 'long', day: 'numeric', year: 'numeric'})

2019년 6월 23일에는 "16 June 2019"를 반환합니다.

자세한 내용은 Luxon의 toLocaleString(사람이 읽기 쉬운 문자열) 가이드를 참고하세요.

두 날짜 사이의 시간 구하기#

두 날짜 사이의 시간을 구하려면 Luxon의 diff(차이) 기능을 사용하세요. 이 기능은 한 날짜에서 다른 날짜를 빼서 기간(duration)을 반환합니다.

예를 들어, 두 날짜 사이의 개월 수를 구해보겠습니다.

Expressions (JavaScript)

{{DateTime.fromISO('2019-06-23').diff(DateTime.fromISO('2019-05-23'), 'months').toObject()}}

이는 [Object: {"months":1}]을 반환합니다.

Code node (JavaScript)

let monthsBetweenDates = DateTime.fromISO('2019-06-23').diff(DateTime.fromISO('2019-05-23'), 'months').toObject()

이는 {"months":1}을 반환합니다.

자세한 내용은 Luxon의 Diffs를 참고하세요.

더 긴 예제: 크리스마스까지 며칠 남았을까?#

이 예제는 여러 Luxon 기능을 함께 사용하고, JMESPath를 활용하며, 기본적인 문자열 조작을 수행합니다.

시나리오: 12월 25일까지 남은 날짜를 카운트다운하고 싶습니다. 매일 크리스마스까지 남은 일수를 알려주어야 하며, 매년 업데이트할 필요 없이 모든 연도에 대해 원활하게 동작해야 합니다.

Expressions (JavaScript)

{{"There are " + $today.diff(DateTime.fromISO($today.year + '-12-25'), 'days').toObject().days.toString().substring(1) + " days to Christmas!"}}

이는 "There are <number of days> days to Christmas!"를 출력합니다. 예를 들어 3월 9일에는 "There are 291 days to Christmas!"를 출력합니다.

이 표현식이 하는 일에 대한 자세한 설명입니다.

  • {{: 표현식의 시작을 나타냅니다.
  • "There are ": 문자열입니다.
  • +: 두 문자열을 결합하는 데 사용됩니다.
  • $today.diff(): 두 날짜 사이의 시간 구하기의 예제와 유사하지만, n8n의 커스텀 $today 변수를 사용합니다.
  • DateTime.fromISO($today.year + '-12-25'), 'days': 이 부분은 $today.year를 사용해 현재 연도를 가져오고, 월과 일을 붙여 ISO 문자열로 만든 다음, 이 전체 ISO 문자열을 Luxon DateTime 데이터 구조로 변환합니다. 또한 Luxon에게 일(days) 단위의 기간을 원한다고 알려줍니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<number-of-days>}]를 반환합니다. 예를 들어 3월 9일에는 [Object: {"days":-291}]입니다.
  • .days는 JMESPath 문법을 사용해 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참고하세요. 이렇게 하면 크리스마스까지 남은 일수를 음수로 얻게 됩니다.
  • .toString().substring(1)은 숫자를 문자열로 바꾸고 -를 제거합니다.
  • + " days to Christmas!": 이전 문자열과 결합하기 위해 +를 사용하는 또 다른 문자열입니다.
  • }}: 표현식의 끝을 나타냅니다.

Code node (JavaScript)

let daysToChristmas = "There are " + $today.diff(DateTime.fromISO($today.year + '-12-25'), 'days').toObject().days.toString().substring(1) + " days to Christmas!";

이는 "There are <number of days> days to Christmas!"를 출력합니다. 예를 들어 3월 9일에는 "There are 291 days to Christmas!"를 출력합니다.

이 코드가 하는 일에 대한 자세한 설명입니다.

  • "There are ": 문자열입니다.
  • +: 두 문자열을 결합하는 데 사용됩니다.
  • $today.diff(): 두 날짜 사이의 시간 구하기의 예제와 유사하지만, n8n의 커스텀 $today 변수를 사용합니다.
  • DateTime.fromISO($today.year + '-12-25'), 'days': 이 부분은 $today.year를 사용해 현재 연도를 가져오고, 월과 일을 붙여 ISO 문자열로 만든 다음, 이 전체 ISO 문자열을 Luxon DateTime 데이터 구조로 변환합니다. 또한 Luxon에게 일(days) 단위의 기간을 원한다고 알려줍니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<number-of-days>}]를 반환합니다. 예를 들어 3월 9일에는 [Object: {"days":-291}]입니다.
  • .days는 JMESPath 문법을 사용해 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참고하세요. 이렇게 하면 크리스마스까지 남은 일수를 음수로 얻게 됩니다.
  • .toString().substring(1)은 숫자를 문자열로 바꾸고 -를 제거합니다.
  • + " days to Christmas!": 이전 문자열과 결합하기 위해 +를 사용하는 또 다른 문자열입니다.