2012-08-23 137 views
0

我试图设置一个cookie为30天,但由于某种原因,它设置后显示过期“会话”。通过Firefox和Chrome进行验证。我无法弄清楚我做错了什么。任何帮助表示赞赏!Cookie没有正确设置过期日期

这里是我的代码:

$name = 'db_mc'; 
    $value = $mc_cid . '-' . $mc_eid; 
    $time = time()+3600*24*30; 
    $path = '/'; 
    $domain = 'www.testmage.local'; 

    $cookie = Mage::getSingleton('core/cookie'); 
    $cookie->set($name,$value,$time,$path,$domain); 

更新:

我测试的setcookie()和正常工作。所以我认为我必须使用它。有谁知道为什么Magento版本只为会议设置?

+0

'echo'时,'$ time'的实际值是多少? – Matt

+4

为什么不直接使用[setcookie()](http://php.net/manual/en/function.setcookie.php)? – Matt

+0

我同意上面的马特。不要使用/构建与PHP内部功能相同的外部功能。它会节省你的时间,并会学习你以正确的方式使用PHP。 – DonSeba

回答

0

Magento的Cookie过期日期时间总是以秒为单位设置,您需要在几秒钟内转换您的日期或时间,然后您将相应地将您的Cookie设置为magento。

饼干在Magento一个月设置:

$expire = strtotime(date("m/d/Y, H:i:s A", time() + 60 * 60 * 24 * 30)); 

输出:2015年9月13日,上午10时43分39秒(以当前日期计算)。