Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Angular 2中的cookie添加以小时为单位的过期时间?_Angular_Cookies_Angular2 Cookie - Fatal编程技术网

如何为Angular 2中的cookie添加以小时为单位的过期时间?

如何为Angular 2中的cookie添加以小时为单位的过期时间?,angular,cookies,angular2-cookie,Angular,Cookies,Angular2 Cookie,如何增加饼干的有效期以小时为单位,我可以用天来做 Cookie.set('SESSION_TOKEN', sessionToken, 6); // here 6 is days 我想要几个小时。我希望cookie在6小时内过期 Cookie.set('SESSION_TOKEN', sessionToken, 6(hours)); // 6 hours 1 day -> 24 hrs ? day -> 6 hrs (1*6)/24 -> 0.25 i.e. 6hrs 下面

如何增加饼干的有效期以小时为单位,我可以用天来做

Cookie.set('SESSION_TOKEN', sessionToken, 6); // here 6 is days
我想要几个小时。我希望cookie在6小时内过期

Cookie.set('SESSION_TOKEN', sessionToken, 6(hours)); // 6 hours
1 day -> 24 hrs
? day -> 6 hrs
(1*6)/24 -> 0.25 i.e. 6hrs
下面是我正在使用的代码,但我得到一个错误“日期类型的参数不能分配给编号类型的参数”


据我所知,当前版本的
ng2 cookies
不包含允许您定义小时而不是天的功能。因此,您必须手动计算cookie过期的时间

所以我想这样的办法可能行得通

import { Cookie } from 'ng2-cookies';

var expire = new Date();
var time = Date.now() + ((3600 * 1000) * 6); // current time + 6 hours ///
expire.setTime(time);

Cookie.set("test", "", expire);

我已经这样做了,这对我很有用

 Cookie.set('SESSION_TOKEN',userObject.sessionToken,0.25);
实际上,如果我们给出
1
,它会持续24小时,所以我对它应用了数学逻辑,即6小时

Cookie.set('SESSION_TOKEN', sessionToken, 6(hours)); // 6 hours
1 day -> 24 hrs
? day -> 6 hrs
(1*6)/24 -> 0.25 i.e. 6hrs

您还可以执行以下操作,并在数小时内进行设置,以降低复杂性:

const now = new Date();
now.setHours(now.getHours() + 8);
Cookie.set('SESSION_TOKEN', sessionToken, now);

然后,通过更改
setHours
:)中的数字,您可以轻松地以小时为单位设置首选过期时间。

您确定使用的是
angular2 cookie
而不是
ng2 cookies
?因为我在angula2 cookie API中找不到任何
set
方法。在当前版本中设置cookie的唯一方法是
put(key:string,value:string,options?:CookieOptions args):void
能否尝试将'set'方法的第二个参数设置为空字符串(
Cookie.set('test','',expire)
),并告诉我您得到了什么输出?在将ts代码传输到js时,您是否也会遇到此错误?我在Cookie.set('SESSION_TOKEN',sessionToken,expire)中遇到此错误“类型为'Date'的参数不能分配给类型为'number'的参数”;您使用的是最新版本(
ng2)吗-cookies@1.0.4
)?因为我刚试过,而且很有效。(还用一个简短的例子更新了我的答案)是的,我正在做最新版本的ng2 cookies,即(“ng2 cookies”:“^1.0.4”)。没有更改,无法将“Date”类型的相同错误参数分配给“number”类型的参数。请用一个简短的示例更新上面的问题?我看不出为什么它不应该工作。我已经添加了我的代码。请检查一下。告诉我要做的改变。注意:我使用angular2I时遇到了类型不匹配的问题,尽管库中的代码似乎可以很好地处理日期,传递分数是一个很好的解决方法。