【问题标题】:set cookie to expire at the end of current day将 cookie 设置为在当天结束时过期
【发布时间】:2014-01-27 19:27:30
【问题描述】:

我想设置一个 cookie 并让它在一天结束时过期

这有效,但会在 24 小时后过期:

setcookie('route_upgrade_voted', true, time()+86400);

这不起作用:

setcookie('route_upgrade_voted', true,  mktime(24,0,0) - time());

【问题讨论】:

    标签: php cookies time mktime


    【解决方案1】:

    最简单的是:

    setcookie('route_upgrade_voted', true, strtotime("tomorrow"));
    

    我希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      Cookie 到期时间是一个绝对值,基于 1970 年 1 月 1 日以来的时间。您正在发送一个相对的:“明天的时间减去当前时间”。这基本上转化为从现在到午夜之间剩下的秒数,然后将其解释为 1970 年 1 月 1 日的日期。你根本不需要减去time()

      echo date('r', mktime(24,0,0)), ' ',  date('r');
                                   ^--note: no subtraction
      Tue, 28 Jan 2014 00:00:00 -0600 Mon, 27 Jan 2014 13:30:33 -0600
      

      噗,你有“明天午夜”,v.s.今天的当前日期/时间。所以:

      setcookie(..., mktime(24,0,0));
      

      【讨论】:

        猜你喜欢
        • 2011-04-13
        • 1970-01-01
        • 2019-03-07
        • 1970-01-01
        • 1970-01-01
        • 2021-11-02
        • 1970-01-01
        • 2011-08-30
        • 1970-01-01
        相关资源
        最近更新 更多