---
title: minus – ลบระยะเวลาจาก DateTime
url: https://www.thepexcel.com/functions/n8n/date-time-functions/minus-n8n/
type: function-explainer
program: n8n
syntax: "{{ $json.dateTime.minus(duration) }}"
date: 2025-12-18
scores:
  popularity: 8
  difficulty: 3
  usefulness: 8
---

# minus – ลบระยะเวลาจาก DateTime

> ลบระยะเวลาจาก DateTime object

## คำอธิบาย

minus() ลบระยะเวลาออกจาก DateTime object โดยรับ duration object ที่ระบุหน่วยเวลาที่ต้องการลบ (years, months, weeks, days, hours, minutes, seconds, milliseconds) สามารถรวมหลายหน่วยในครั้งเดียวได้ เช่น {days: 7, hours: 3} เหมาะสำหรับคำนวณวันที่ย้อนหลัง กำหนด deadline ย้อนหลัง คำนวณวันหมดอายุ สร้าง date range สำหรับ filter ข้อมูล หรือคำนวณช่วงเวลาในอดีตสำหรับ analytics

## Syntax

```excel
{{ $json.dateTime.minus(duration) }}
```

**Variant**

```excel
{{ $now.minus({days: 7}) }}
```

ลบ 7 วันจากเวลาปัจจุบัน เหมาะสำหรับคำนวณช่วงเวลาย้อนหลัง

**Variant**

```excel
{{ toDateTime($json.date).minus({hours: 24, minutes: 30}) }}
```

ลบหลายหน่วยเวลาพร้อมกัน (24 ชั่วโมง 30 นาที) จาก DateTime ที่แปลงจาก string

**Variant**

```excel
{{ $now.minus(Duration.fromObject({weeks: 2})) }}
```

ใช้ Luxon Duration object โดยตรงสำหรับการคำนวณที่ซับซ้อน

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| duration | Yes | object |  | Duration object ที่กำหนดระยะเวลาที่ต้องการลบ รองรับ years (ปี), quarters (ไตรมาส), months (เดือน), weeks (สัปดาห์), days (วัน), hours (ชั่วโมง), minutes (นาที), seconds (วินาที), milliseconds (มิลลิวินาที) สามารถระบุหลายหน่วยพร้อมกันได้ เช่น {days: 7, hours: 12} หรือใช้เป็นตัวเลข (milliseconds) เช่น minus(123) จะลบ 123 มิลลิวินาที |

## เคสการใช้งาน

### คำนวณ deadline ย้อนหลัง

ใช้ minus() คำนวณวันที่ที่ต้องเริ่มงานเพื่อให้ทันกำหนด เช่น ถ้า deadline คือ 30 วันข้างหน้า และต้องใช้เวลา 5 วัน ก็ต้องเริ่มงาน 25 วันข้างหน้า

_เหมาะกับ:_ project-planning

### สร้าง date range สำหรับ query ข้อมูล

ใช้ minus() กำหนดช่วงเวลาย้อนหลังสำหรับ filter ข้อมูล เช่น query ข้อมูล 7 วันย้อนหลัง หรือ 3 เดือนที่ผ่านมา

_เหมาะกับ:_ data-filtering

### คำนวณวันหมดอายุ

ใช้ minus() คำนวณว่าสินค้าหรือบริการจะหมดอายุเมื่อไหร่ เช่น subscription ที่มีอายุ 1 ปี จะหมดอายุในวันไหน

_เหมาะกับ:_ expiry-tracking

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ลบวันจากวันที่ (พื้นฐาน)

```excel
{{ toDateTime('2024-12-25').minus({days: 7}) }}
```

**ผลลัพธ์:** `2024-12-18T00:00:00.000Z`

ลบ 7 วันจากวันที่ 25 ธันวาคม 2024 ได้วันที่ 18 ธันวาคม 2024
.
สังเกตว่าต้องใช้ toDateTime() แปลง string เป็น DateTime object ก่อนนะครับ ไม่งั้น minus() จะใช้ไม่ได้ 😅
.
เหมาะสำหรับคำนวณวันที่ย้อนหลังแบบง่ายๆ ครับ

### 2. ตัวอย่างที่ 2: คำนวณช่วงเวลาย้อนหลังจากปัจจุบัน

```excel
{{ $now.minus({weeks: 2}) }}
```

**ผลลัพธ์:** `2024-12-03T14:30:52.414Z (สมมติเวลาปัจจุบันคือ 2024-12-17 14:30:52)`

ใช้ $now.minus({weeks: 2}) คำนวณเวลา 2 สัปดาห์ที่แล้ว
.
ตัวอย่างนี้เจ๋งตรงที่ใช้ $now ซึ่งเป็น DateTime object อยู่แล้ว ไม่ต้องแปลงอะไรเพิ่ม 😎
.
เหมาะสำหรับสร้าง date range สำหรับ query ข้อมูล เช่น ดึงข้อมูล orders ย้อนหลัง 2 สัปดาห์ สามารถใช้กับ HTTP Request node เพื่อ filter data ตาม date range ได้เลยครับ

### 3. ตัวอย่างที่ 3: ลบหลายหน่วยเวลาพร้อมกัน

```excel
{{ toDateTime($json.deliveryDate).minus({days: 3, hours: 6}) }}
```

**ผลลัพธ์:** `2024-12-22 18:00:00 (ถ้า deliveryDate = '2024-12-26 00:00:00')`

สมมติ $json.deliveryDate = '2024-12-26 00:00:00' (วันส่งสินค้า)
.
ใช้ minus({days: 3, hours: 6}) ลบ 3 วัน 6 ชั่วโมงพร้อมกัน เพื่อคำนวณเวลาที่ต้องเตรียมสินค้า ได้วันที่ 22 ธันวาคม เวลา 18:00
.
จุดเด่นของ minus() คือสามารถลบหลายหน่วยเวลาพร้อมกันได้ในคำสั่งเดียว ไม่ต้องมาแยก minus หลายรอบ 😎
.
เหมาะสำหรับ workflow logistics ที่ต้องคำนวณ lead time ย้อนหลังครับ

### 4. ตัวอย่างที่ 4: สร้าง date range สำหรับ API query

```excel
{{ {
  start_date: $now.minus({months: 1}).toFormat('yyyy-MM-dd'),
  end_date: $now.toFormat('yyyy-MM-dd')
} }}
```

**ผลลัพธ์:** `{
  start_date: '2024-11-17',
  end_date: '2024-12-17'
}`

สร้าง object ที่มี start_date (1 เดือนย้อนหลัง) และ end_date (วันนี้) สำหรับส่งไปยัง API
.
ใช้ minus({months: 1}) คำนวณวันเริ่มต้นย้อนหลัง 1 เดือน จากนั้นใช้ .toFormat('yyyy-MM-dd') แปลงเป็นรูปแบบที่ API ต้องการ
.
ตัวอย่างนี้ผมใช้บ่อยมากครับ ตอนทำ workflow ที่ดึงข้อมูล analytics หรือ report ย้อนหลัง 1 เดือน 💡
.
ใช้กับ HTTP Request node ใน n8n ได้เลยโดยใส่ expression นี้ใน Body หรือ Query Parameters ครับ

## หมายเหตุเพิ่มเติม

💡 **Tip สำคัญ**: minus() return DateTime object ใหม่ ไม่ได้แก้ไข DateTime เดิม (immutable) เพราะงั้นถ้าเรียก $now.minus({days: 7}) แล้วอยากเก็บค่าไว้ใช้ ต้องเก็บในตัวแปรใหม่ครับ
.
⚠️ **ข้อควรระวัง**: ใช้ชื่อหน่วยเวลาเป็น plural เสมอ ({days: 1} ไม่ใช่ {day: 1}) ผมเจอ error นี้บ่อยมากตอนเริ่มใช้งาน 😅
.
💡 **เทคนิคที่เจ๋ง**: สามารถ chain กับ method อื่นได้ เช่น $now.minus({days: 7}).toFormat('yyyy-MM-dd') ทำให้คำนวณและ format ในคำสั่งเดียวเลย
.
⚠️ **อย่าลืม**: ต้องแปลง string เป็น DateTime ก่อนใช้ minus() ด้วย toDateTime() ไม่สามารถใช้กับ string โดยตรง
.
💡 **ความสามารถพิเศษ**: รองรับ timezone-aware calculations สำหรับ DST (Daylight Saving Time) อัตโนมัติ ส่วนตัวผมคิดว่าฟีเจอร์นี้ช่วยได้เยอะเวลาทำงานกับ timezone ที่มี DST ครับ 😎

## คำถามที่พบบ่อย

**Q: minus() ต่างจาก plus() อย่างไร?**

minus() ลบระยะเวลาออกจาก DateTime (ย้อนหลัง) ส่วน plus() บวกระยะเวลาเข้าไป (ไปข้างหน้า)
.
ง่ายๆ ครับ: $now.minus({days: 7}) = 7 วันที่แล้ว, $now.plus({days: 7}) = 7 วันข้างหน้า 😎

**Q: สามารถลบหลายหน่วยเวลาพร้อมกันได้ไหม?**

ได้เลยครับ ใช้ object ที่มีหลาย key เช่น minus({days: 7, hours: 12, minutes: 30}) จะลบ 7 วัน 12 ชั่วโมง 30 นาทีพร้อมกัน
.
Luxon จะคำนวณผลลัพธ์โดยรวมทุกหน่วยเวลาที่ระบุให้เลย ไม่ต้องมา minus ทีละตัว 😎

**Q: minus() รองรับหน่วยเวลาอะไรบ้าง?**

รองรับ years (ปี), quarters (ไตรมาส), months (เดือน), weeks (สัปดาห์), days (วัน), hours (ชั่วโมง), minutes (นาที), seconds (วินาที), milliseconds (มิลลิวินาที)
.
⚠️ ข้อสำคัญ: ใช้ชื่อเป็น plural เสมอนะครับ เช่น {days: 1} ไม่ใช่ {day: 1} ไม่งั้นจะ error 😅

**Q: ลบเดือนจะทำงานอย่างไร ถ้าจำนวนวันไม่เท่ากัน?**

Luxon ฉลาดมากครับ มันจะคำนวณแบบ calendar-aware
.
ตัวอย่างเช่น minus({months: 1}) จาก 31 มีนาคม จะได้ 28 กุมภาพันธ์ (ปีปกติ) เพราะกุมภาพันธ์ไม่มีวันที่ 31
.
Luxon ปรับให้อยู่ในช่วงวันที่ที่ถูกต้องให้อัตโนมัติ ไม่ต้องกลัวว่าจะได้วันที่ผิด 😎

**Q: ใช้ minus() กับ $json.date ที่เป็น string ได้ไหม?**

ไม่ได้ครับ minus() ใช้กับ DateTime object เท่านั้น
.
ต้องแปลง string เป็น DateTime object ก่อนด้วย toDateTime() เช่น toDateTime($json.date).minus({days: 1})
.
ผมเจอ error นี้บ่อยมาก ตอนเริ่มเขียน n8n 😅 จำไว้ว่าต้อง convert ก่อนเสมอนะครับ

**Q: minus() vs diff() ต่างกันอย่างไร?**

สองฟังก์ชันนี้ใช้งานต่างกันนะครับ:
.
• minus() ลบระยะเวลาออกจาก DateTime และ return DateTime object ใหม่ (คำนวณวันที่ย้อนหลัง)
• diff() หาความต่างระหว่าง 2 DateTime และ return Duration object (หาช่วงห่างระหว่างสองวัน)
.
ตัวอย่าง: date.minus({days: 7}) = 7 วันก่อน vs date.diff(otherDate, 'days') = จำนวนวันระหว่าง 2 วันที่

## ฟังก์ชันที่เกี่ยวข้อง

- [plus – ฟังก์ชันบวกระยะเวลาเข้ากับวันที่](https://www.thepexcel.com/functions/n8n/date-time-functions/plus-n8n/)
- [diff – หาผลต่างระหว่างสองวันที่](https://www.thepexcel.com/functions/n8n/date-time-functions/diff-n8n/)
- [$now – อ็อบเจ็กต์ Luxon สำหรับวันที่และเวลาปัจจุบัน](https://www.thepexcel.com/functions/n8n/other/now-n8n/)
- [toDateTime – แปลงข้อมูลเป็นวัตถุวันที่และเวลา](https://www.thepexcel.com/functions/n8n/type-functions/to-date-time-n8n/)
- [.format() – จัดรูปแบบค่าเป็นสตริงตามรูปแบบที่กำหนด](https://www.thepexcel.com/functions/n8n/math-functions/format-n8n/)

## แหล่งข้อมูลเพิ่มเติม

- [Date and time | n8n Docs](https://docs.n8n.io/code/builtin/date-time/) _(documentation)_
- [DateTime.minus() | Luxon Documentation](https://moment.github.io/luxon/api-docs/index.html#datetimeminus) _(documentation)_
- [Date and time with Luxon | n8n Cookbook](https://docs.n8n.io/code/cookbook/luxon/) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/n8n/date-time-functions/minus-n8n/](https://www.thepexcel.com/functions/n8n/date-time-functions/minus-n8n/)_
