【问题标题】:Cannot compare time of cookie created in php无法比较在 php 中创建的 cookie 的时间
【发布时间】:2019-09-18 08:02:10
【问题描述】:

我有两个 cookie,我已经在其中存储了 cookie 数据和 cookie 创建时间,并以序列化形式保存。

$cookieArray = ['cookiedata' => $this->uri->uri_string(), 'creationTime' => new DateTime()];
$cookie      = [
    'name'   => 'invited',
    'value'  => serialize($cookieArray),
    'expire' => '3600',
];

但现在我想要 比较两个 cookie 创建时间,即哪个更旧,我正在使用以下代码,但我得到的结果是错误的。

$cookiearray  = $this->input->cookie('invited', true);
$cookieArray1 = unserialize($cookiearray);

if ($cookieArray1['creationTime'] > $cookieArray2['creationTime']) {
    printr('cookie 1 is greater');
} else {
    printr('cookie 2 is greater ');
}

【问题讨论】:

    标签: php date datetime


    【解决方案1】:

    最好的方法是存储timestamp(称为epoch)。使用 time() 函数在 PHP 中检索 epoch 时间并存储在您的 cookie 中。比较cookie创建时间会很容易。

    有关 unix 时间戳的更多信息,请参阅php.net 上的官方文档

    你可以实现如下,

    $cookieArray = array(
        'cookiedata' => $this->uri->uri_string(),
        'creationTime'=> time()
    );
    $cookie = array(
        'name' => 'invited',
        'value' => serialize($cookieArray),
        'expire' => '3600',
    );
    

    获取cookie和deserialize的值,之后就可以比较创建时间了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 2011-09-03
      • 1970-01-01
      • 2016-08-12
      相关资源
      最近更新 更多