5

I'm passing two dayjs date to Vars.date global variables.

var dayjs = require("dayjs") for import
   
Vars.date1 = dayjs(whateverdate1("add", 2)).format('MMM D, YYYY')
Vars.date2 = dayjs(whateverdate2("add", 2)).format('MMM D, YYYY')

const date1 = Vars.date1
const date2 = Vars.date2
let diff = date1.diff(date2, 'month')
console.log('diff' + diff)

error: TypeError: date1.diff is not a function

I am unable to use diff and get methods, always 'not a function'

What did I miss?

brobee
  • 231
  • 1
  • 5
  • 25
  • What is Vars.date? Where are you getting it from? Can you console log date2 and date1 so I can see what heir values are? – ImDarkk Feb 05 '22 at 07:06
  • `diff` is available on dayjs object. From your code, your have `Vars.date` which we have no info on, plus I don't think it is an instance of DayJS object, hence, this error. – Kanishk Anand Feb 05 '22 at 08:11
  • Sorry guys, @ImDarkk I missed those lines. I edited my original question. It seems to me, those are dayjs objects... – brobee Feb 06 '22 at 00:37
  • It turned out, Vars.date was not a dayjs object, as you guys mentioned. I guessed the Vars.date = dayjs(whatever) returns a dayjs object, but it seems not. using dayjs method on that solved the problem. I wanna accept an answer, please post it and will accept it. thanks – brobee Feb 07 '22 at 18:53
  • @brobee You should be allowed to answer and accept your own question – Tyler Dane May 25 '22 at 16:31

2 Answers2

6

Make sure that Day.js supports the require() function. If it is import-based, you need to maybe change the import to that.

So, just try doing the following.

import dayjs from "dayjs";

Links

Arnav Thorat
  • 3,078
  • 3
  • 8
  • 33
1

I think you had two problems:

  1. add() should be called like dayjs().add(2, 'month')
  2. Your were trying to call diff() on a string (the output of dayjs().format()) rather than a Dayjs object

Here's how you can create two dayjs objects and find their difference in months:

const dayjs = require("dayjs")
// or:
// import dayjs from "dayjs";

const date1 = dayjs()   // Dayjs object of current month
const date2 = dayjs().add(2, "month") // Dayjs object of 2 months from now

date2.diff(date1, "month") // 2
Tyler Dane
  • 951
  • 1
  • 14
  • 25