Postman TodayDate variable to get past dates

Hi, so I’m stuck on creating a new variable for a past date. I currently have a global variable:
pm.globals.set(“todayDate”,parseInt(moment().format(“YYYYMMDD”)))

Instead of creating a bunch of different global variables for 5 days back, 10 days back and so on I was wondering what I can do with my todayDate variable to set a new local variable as 10 days back?

I know i could just do something like this: pm.globals.set(“yesterdayDate”,parseInt(moment().subtract(1, ‘days’).format(“YYYYMMDD”)))
but was thinking i could use my todayDate variable and manipulate that ?

Thanks!

1 Like

@mattschmitt Welcome to the Community :partying_face:

You can use dynamic past date if there’s no specific req to the past date here. This will create new past data for every run

pm.environment.set("randompastdate", pm.variables.replaceIn('{{$randomDatePast}}'));
 let pastdate = pm.environment.get("randompastdate");
pastdate = moment(pastdate);
pm.environment.set("pastdate", pastdate.format("YYYYMMDD"));

Yes we can do like this.

var pdate = new Date();
pdate.setDate(pdate.getDate()-1);
pastdate = moment(pdate);
pm.environment.set("pastdate", pastdate.format("YYYYMMDD"));

So it depends on your req, Please let me know if you are still facing any issues :blush:

1 Like

@bpricilla Thanks for the response. Sorry I’m pretty new to this but I have to get 10 days back from todaysDate so it does have to be a specific date.

What i have below does not work but could i do something along the lines of it do you know ?

// pm.variables.set(“tenDaysBack”, pm.globals.get(“todayDate”).subtract(10, ‘days’).format(“YYYYMMDD”))

2 Likes

@mattschmitt No problem :blush: I thought any past date would work for you.

So please try the below snippet then:

const moment = require('moment');
const today = moment();
var todayDate = today.format('YYYYMMDD');
pm.globals.set("todayDate", todayDate);

var tenDaysBack = moment().subtract(10, 'days');
//console.log(tenDaysBack);
pm.globals.set("tenDaysBack", tenDaysBack.format('YYYYMMDD'));


Please let me know if you still face any issues here :slightly_smiling_face:

3 Likes

@bpricilla thanks so much for the help ! That works great ! your the best !

2 Likes

People helping people! I love to see it :slight_smile:

@mattschmitt if the above suggestion from @bpricilla worked for you, would you mind marking it as the solution so others can find it quickly?

3 Likes

Great to hear :blush: Cheers!! Happie Testing :partying_face:

I placed the snippet in Pre-request Script.
And added extra line to it pm.collectionVariables.set(“startDate”,“todayDate”);

In the body, i am using this line
“startDate”:“{{startDate}}”,

But its not picking it correctly, as, in console, I see as “startDate”:todayDate

Hey @sherrinjac :wave:

And added extra line to it pm.collectionVariables.set(“startDate”,“todayDate”);

Most likely you wanted the following instead:

pm.collectionVariables.set("startDate", todayDate);

See the lack of quotes (") around todayDate

If you are facing some other issue, I would suggest opening a new topic :+1:

Thank you very much. It worked.

1 Like

Hi @bpricilla the method “substract” is not working for me . I’m getting the error: your variable.substract is not a function….

Please advice!

// 1. Create a moment object for now

let now = require('moment');

const time = now().format(("YYYY-MM-DD") + "T" + ("HH:mm:ss")).split("+02:00")[0] + ".000Z";

//2. put this in the environment variable to be able to reuse this in as much places as possible

pm.environment.set('currentDate', time);

let momentPodPrevious = now();

let prevResultpod = momentPodPrevious.substract('days', 1);

pm.environment.set('momentPodPrev', prevResultpod);

Thank you!

Hey @chantal-decraie :waving_hand:

Welcome to the Postman Community! :postman:

It looks like you have a slight typo on that function name substract, should be subtract.

I used the new Agent Mode to help me out and quickly find the issue in the script.

Once I confirmed the change, it saved and sent the request for me :heart:

1 Like

oh my days! @danny-dainton thank you! you’re so right :wink: :grin: it’s fixed.

Have a nice day!

1 Like