HTML5 Data Bindings State Management Support Product Page

calculating cookie dates

Reported 23 May 2018 09:01:34
1
has this problem
23 May 2018 09:01:34 Greta Garberini posted:
Hi, I need to calculate cookies so for example set cookie like
onClick="dmxStateManagementAction('setCookie','mind','confirmed',({path:"/", type:"date", unit:"12", interval:"mm"}))"

obviously should produce a 12 month interval (starting as of May, 23rd 2018), whereas it produces an expiration date of "Thu, 23 May 2052 08:57:55 GMT"

Has there been an update I was not aware of or did I miss something else?

Current code is:

function dmxStateManagementAction(action, name, value, cookie, scope) { // v1.00
 var evt = jQuery.event.fix(window.event || arguments.callee.caller.arguments[0]),
  args = [name, value], db = jQuery.dmxDataBindings;

  if (cookie) {
    if (cookie.type == 'date' && cookie.interval && cookie.unit) {
      var nd = new Date();
      switch(cookie.interval) {
        case 'y' : nd.setFullYear(nd.getFullYear() + cookie.unit);  break;
        case 'mm': nd.setMonth(nd.getMonth() + cookie.unit);  break;
        case 'h' : nd.setTime(nd.getTime() + cookie.unit*3600000);  break;
        case 'm' : nd.setTime(nd.getTime() + cookie.unit*60000);  break;
        default  : nd.setDate(nd.getDate() + cookie.unit);  break;
      }
      args.push(nd);
    } else {
      args.push(null);
    }
    args.push(cookie.path ? cookie.path : null);
    args.push(cookie.domain ? cookie.domain : null);
    args.push(cookie.secure ? cookie.secure : null);
  }

  if (db) db[action].apply(scope, args);
  evt.preventDefault();
}


Reply to this topic