How to set expire time of Cookie using `ngx-cookie-service`

2.8k Views Asked by At

I am using ngx-cookie-service for my angular app. In the official docs it says I can add a third parameter for the expiration time like -

this.cookieService.set('CookieName', 'Cookie Value', 5);

The third parameter is for expire time in days. Is there any way to set the expiration time of the cookie in minutes or in an hour? IE: 30 mint or Hour.

1

There are 1 best solutions below

0
danday74 On BEST ANSWER

If you look at the code here: https://github.com/stevermeister/ngx-cookie-service/blob/master/projects/ngx-cookie-service/src/lib/cookie.service.ts#L105

You will see that expires is:

Number of days until the cookies expires or an actual Date

As such, you just need to get the current date/time and add an hour to it like so:

const myDate: Date = new Date();
myDate.setHours( myDate.getHours() + 1 );

And then:

this.cookieService.set('CookieName', 'Cookie Value', myDate);

OR

this.cookieService.set('CookieName', 'Cookie Value', { expires: myDate });

Note, manipulating dates is much easier with a date manipulation library like date-fns which always returns a JS Date.

import { addHours } from 'date-fns';
const myDate: Date = addHours(new Date(), 1);

Obviously you will need to ... npm install date-fns ... for this to work. For alternative date manipulation libraries search for alternatives to date-fns with npm trends. Although, in my humble opinion, I consider date-fns to be top notch.

Docs for date-fns are here