9

Is there a way to store in a variable a cookie creation date? I'm using the jquery.cookie plugin. If there is not a way, I'm thinking about store in the cookie, as value, the actual time/date. It could be a solution.

Thanks.

  • 2
    Could you not assume that the cookie expiration date is x time after set time? So you could just simply get it by (expiration date) - (x time)? – Ilu Jul 18 '13 at 11:25
  • @Puuskis, good thought, but how will get the 'x time', that is lacking in this question. can you please comment on this if you have any answer. – RONE Jul 18 '13 at 11:35
  • @SAM If you are setting the expiration date yourself, you could use the same time to calculate it. For example if all cookies expire 7 days after, you just reduce 7 days from the date. If you don't want them to expire, set them so far in future it is not relevant but you can still count the time from it. – Ilu Jul 18 '13 at 11:37
  • It is a good solution too. – Mario Lima Cavalcanti Jul 18 '13 at 15:19
  • If you click on lock icon previous to url in chromium browser, there select cookie, & select any among the stored cookie, you will see 'created' attribute value is given with when it's created. Not sure if here browser explicitly store when cookies getting added – Satish Patro May 14 '21 at 11:09

2 Answers2

6

You will indeed have to store the time in the cookie itself. The browser's cookie API does not supply the creation date as metadata.

4
<!-- Output the DateTime that the cookie is set to expire -->
@Request.Cookies["YourCookie"].Expires.ToString()

However, I don't believe that there is a property to get the Creation Date, unless you were to specifically store the value itself as an additional value within the Cookie itself :

//Create your cookie
HttpCookie yourCookie = new HttpCookie("Example");
//Add an actual value to the Values collection
yourCookie.Values.Add("YourValue", "ExampleValue");
//Add a Created Value to store the DateTime the Cookie was created
yourCookie.Values.Add("Created", DateTime.Now.ToString());
yourCookie.Expires = DateTime.Now.AddMinutes(30);

//Add the cookie to the collection
Request.Cookies.Add(yourCookie);

which you could access in your page through :

Created : @Request.Cookies["Example"].Values["Created"].ToString()
Expires : @Request.Cookies["Example"].Expires.ToString()
Ganesh Rengarajan
  • 2,006
  • 13
  • 26