InfoGrab Docs

Luxon으로 날짜 및 시간 다루기

요약

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

Luxon은 날짜와 시간을 더 쉽게 다룰 수 있게 해주는 JavaScript 라이브러리입니다. Luxon 사용에 대한 자세한 내용은 Luxon 문서를 참조하세요.

n8n은 노드 간에 날짜를 문자열로 전달하므로 파싱이 필요합니다. Luxon이 이를 더 쉽게 만들어 줍니다.

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 })과 동일합니다.

이 변수들은 문자열로 변환될 때 다른 시간 형식을 반환할 수 있습니다:

{{$now}}
// n8n은 ISO 형식의 타임스탬프를 표시합니다
// 예: 2022-03-09T14:02:37.065+00:00
{{"Today's date is " + $now}}
// n8n은 "Today's date is <unix timestamp>"를 표시합니다
// 예: "Today's date is 1646834498755"
$now
// n8n은 를 표시합니다
// 예: 2022-03-09T14:00:25.058+00:00
let rightNow = "Today's date is " + $now
// n8n은 "Today's date is <unix timestamp>"를 표시합니다
// 예: "Today's date is 1646834498755"
_now
# n8n은 를 표시합니다
# 예: 2022-03-09T14:00:25.058+00:00
rightNow = "Today's date is " + str(_now)
# n8n은 "Today's date is <unix timestamp>"를 표시합니다
# 예: "Today's date is 1646834498755"
n8n은 날짜에 대한 표현식의 데이터 변환을 지원하는 내장 편의 함수를 제공합니다. 자세한 내용은 [표현식 참조](/data/expression-reference/index.md)를 참조하세요.

JavaScript 날짜를 Luxon으로 변환#

네이티브 JavaScript 날짜를 Luxon 날짜로 변환하려면:

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

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

날짜 문자열 및 기타 날짜 형식을 Luxon DateTime 객체로 변환할 수 있습니다. 표준 형식과 임의의 문자열에서 변환할 수 있습니다.

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을 생성합니다. 예:

{{DateTime.fromISO('2019-06-23T00:00:00.00')}}
let luxonDateTime = DateTime.fromISO('2019-06-23T00:00:00.00')
Luxon의 API 문서에는 [fromISO](https://moment.github.io/luxon/api-docs/index.html#datetimefromiso)에 대한 자세한 정보가 있습니다.

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

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

Luxon의 임시 파싱을 사용합니다. 이를 위해 fromFormat() 함수를 사용하여 문자열과 형식을 설명하는 토큰 집합을 제공합니다.

예를 들어, n8n 창립일인 2019년 6월 23일이 23-06-2019 형식으로 되어 있습니다. Luxon 객체로 변환하려면:

{{DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")}}
let newFormat = DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")
임시 파싱을 사용할 때는 Luxon의 [제한 사항](https://moment.github.io/luxon/#/parsing?id=limitations) 경고를 유의하세요. 예상치 못한 결과가 나타나면 [디버깅](https://moment.github.io/luxon/#/parsing?id=debugging) 가이드를 참고하세요.

오늘로부터 n일 가져오기#

오늘 이전 또는 이후의 일수를 가져옵니다.

예를 들어, 필드를 항상 현재 날짜 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})와 동일합니다.

예를 들어, 현재 날짜 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 형식으로 변환합니다.

{{$today.minus({days: 7}).toLocaleString()}}
let readableSevenDaysAgo = $today.minus({days: 7}).toLocaleString()
형식을 변경할 수 있습니다. 예를 들어:
{{$today.minus({days: 7}).toLocaleString({month: 'long', day: 'numeric', year: 'numeric'})}}

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

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

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

자세한 내용은 Luxon의 [toLocaleString (사람을 위한 문자열)](https://moment.github.io/luxon/#/formatting?id=tolocalestring-strings-for-humans) 가이드를 참조하세요.

두 날짜 사이의 시간 가져오기#

두 날짜 사이의 시간을 가져오려면 Luxon의 diff 기능을 사용합니다. 한 날짜에서 다른 날짜를 빼서 기간을 반환합니다.

예를 들어, 두 날짜 사이의 월 수를 가져옵니다:

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

[Object: {"months":1}]를 반환합니다.

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

{"months":1}를 반환합니다.

자세한 내용은 Luxon의 [Diff](https://moment.github.io/luxon/#/math?id=diffs)를 참조하세요.

더 긴 예시: 크리스마스까지 며칠?#

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

시나리오: 12월 25일까지의 카운트다운이 필요합니다. 매일 크리스마스까지 남은 일수를 알려줍니다. 내년을 위해 업데이트하고 싶지 않으므로, 매년 자동으로 작동해야 합니다.

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

"There are <남은 일수> 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에 일 단위로 기간을 원한다고 알립니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<일수>}]를 반환합니다. 예를 들어, 3월 9일에는 [Object: {"days":-291}].
  • .days는 JMESPath 구문을 사용하여 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참조하세요. 음수로 크리스마스까지의 일수를 반환합니다.
  • .toString().substring(1)은 숫자를 문자열로 변환하고 -를 제거합니다.
  • + " days to Christmas!": 다른 문자열로, +로 이전 문자열에 연결합니다.
  • }}: 표현식의 끝을 나타냅니다.
let daysToChristmas = "There are " + $today.diff(DateTime.fromISO($today.year + '-12-25'), 'days').toObject().days.toString().substring(1) + " days to Christmas!";

"There are <남은 일수> 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에 일 단위로 기간을 원한다고 알립니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<일수>}]를 반환합니다. 예를 들어, 3월 9일에는 [Object: {"days":-291}].
  • .days는 JMESPath 구문을 사용하여 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참조하세요. 음수로 크리스마스까지의 일수를 반환합니다.
  • .toString().substring(1)은 숫자를 문자열로 변환하고 -를 제거합니다.
  • + " days to Christmas!": 다른 문자열로, +로 이전 문자열에 연결합니다.

Luxon으로 날짜 및 시간 다루기

원문 보기
요약

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

Luxon은 날짜와 시간을 더 쉽게 다룰 수 있게 해주는 JavaScript 라이브러리입니다. Luxon 사용에 대한 자세한 내용은 Luxon 문서를 참조하세요.

n8n은 노드 간에 날짜를 문자열로 전달하므로 파싱이 필요합니다. Luxon이 이를 더 쉽게 만들어 줍니다.

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 })과 동일합니다.

이 변수들은 문자열로 변환될 때 다른 시간 형식을 반환할 수 있습니다:

{{$now}}
// n8n은 ISO 형식의 타임스탬프를 표시합니다
// 예: 2022-03-09T14:02:37.065+00:00
{{"Today's date is " + $now}}
// n8n은 "Today's date is <unix timestamp>"를 표시합니다
// 예: "Today's date is 1646834498755"
$now
// n8n은 를 표시합니다
// 예: 2022-03-09T14:00:25.058+00:00
let rightNow = "Today's date is " + $now
// n8n은 "Today's date is <unix timestamp>"를 표시합니다
// 예: "Today's date is 1646834498755"
_now
# n8n은 를 표시합니다
# 예: 2022-03-09T14:00:25.058+00:00
rightNow = "Today's date is " + str(_now)
# n8n은 "Today's date is <unix timestamp>"를 표시합니다
# 예: "Today's date is 1646834498755"
n8n은 날짜에 대한 표현식의 데이터 변환을 지원하는 내장 편의 함수를 제공합니다. 자세한 내용은 [표현식 참조](/data/expression-reference/index.md)를 참조하세요.

JavaScript 날짜를 Luxon으로 변환#

네이티브 JavaScript 날짜를 Luxon 날짜로 변환하려면:

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

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

날짜 문자열 및 기타 날짜 형식을 Luxon DateTime 객체로 변환할 수 있습니다. 표준 형식과 임의의 문자열에서 변환할 수 있습니다.

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을 생성합니다. 예:

{{DateTime.fromISO('2019-06-23T00:00:00.00')}}
let luxonDateTime = DateTime.fromISO('2019-06-23T00:00:00.00')
Luxon의 API 문서에는 [fromISO](https://moment.github.io/luxon/api-docs/index.html#datetimefromiso)에 대한 자세한 정보가 있습니다.

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

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

Luxon의 임시 파싱을 사용합니다. 이를 위해 fromFormat() 함수를 사용하여 문자열과 형식을 설명하는 토큰 집합을 제공합니다.

예를 들어, n8n 창립일인 2019년 6월 23일이 23-06-2019 형식으로 되어 있습니다. Luxon 객체로 변환하려면:

{{DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")}}
let newFormat = DateTime.fromFormat("23-06-2019", "dd-MM-yyyy")
임시 파싱을 사용할 때는 Luxon의 [제한 사항](https://moment.github.io/luxon/#/parsing?id=limitations) 경고를 유의하세요. 예상치 못한 결과가 나타나면 [디버깅](https://moment.github.io/luxon/#/parsing?id=debugging) 가이드를 참고하세요.

오늘로부터 n일 가져오기#

오늘 이전 또는 이후의 일수를 가져옵니다.

예를 들어, 필드를 항상 현재 날짜 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})와 동일합니다.

예를 들어, 현재 날짜 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 형식으로 변환합니다.

{{$today.minus({days: 7}).toLocaleString()}}
let readableSevenDaysAgo = $today.minus({days: 7}).toLocaleString()
형식을 변경할 수 있습니다. 예를 들어:
{{$today.minus({days: 7}).toLocaleString({month: 'long', day: 'numeric', year: 'numeric'})}}

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

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

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

자세한 내용은 Luxon의 [toLocaleString (사람을 위한 문자열)](https://moment.github.io/luxon/#/formatting?id=tolocalestring-strings-for-humans) 가이드를 참조하세요.

두 날짜 사이의 시간 가져오기#

두 날짜 사이의 시간을 가져오려면 Luxon의 diff 기능을 사용합니다. 한 날짜에서 다른 날짜를 빼서 기간을 반환합니다.

예를 들어, 두 날짜 사이의 월 수를 가져옵니다:

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

[Object: {"months":1}]를 반환합니다.

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

{"months":1}를 반환합니다.

자세한 내용은 Luxon의 [Diff](https://moment.github.io/luxon/#/math?id=diffs)를 참조하세요.

더 긴 예시: 크리스마스까지 며칠?#

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

시나리오: 12월 25일까지의 카운트다운이 필요합니다. 매일 크리스마스까지 남은 일수를 알려줍니다. 내년을 위해 업데이트하고 싶지 않으므로, 매년 자동으로 작동해야 합니다.

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

"There are <남은 일수> 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에 일 단위로 기간을 원한다고 알립니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<일수>}]를 반환합니다. 예를 들어, 3월 9일에는 [Object: {"days":-291}].
  • .days는 JMESPath 구문을 사용하여 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참조하세요. 음수로 크리스마스까지의 일수를 반환합니다.
  • .toString().substring(1)은 숫자를 문자열로 변환하고 -를 제거합니다.
  • + " days to Christmas!": 다른 문자열로, +로 이전 문자열에 연결합니다.
  • }}: 표현식의 끝을 나타냅니다.
let daysToChristmas = "There are " + $today.diff(DateTime.fromISO($today.year + '-12-25'), 'days').toObject().days.toString().substring(1) + " days to Christmas!";

"There are <남은 일수> 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에 일 단위로 기간을 원한다고 알립니다.
  • toObject()는 diff()의 결과를 더 사용하기 쉬운 객체로 변환합니다. 이 시점에서 표현식은 [Object: {"days":-<일수>}]를 반환합니다. 예를 들어, 3월 9일에는 [Object: {"days":-291}].
  • .days는 JMESPath 구문을 사용하여 객체에서 일수만 가져옵니다. n8n에서 JMESPath를 사용하는 방법에 대한 자세한 내용은 JMESpath 문서를 참조하세요. 음수로 크리스마스까지의 일수를 반환합니다.
  • .toString().substring(1)은 숫자를 문자열로 변환하고 -를 제거합니다.
  • + " days to Christmas!": 다른 문자열로, +로 이전 문자열에 연결합니다.