如何计算一个过路人的剩余时间

时间:2016-11-21 作者:chaitanya

我正在安排一个一小时的过渡期。现在我想知道这个过渡期还有多少时间到期。

我使用get\\u option函数获取瞬态超时值。

谁能帮帮我吗。

非常感谢。

3 个回复
SO网友:sMyles

这里的问题是,如果站点实际使用的是Redis或任何其他受支持的“外部缓存”,那么在选项表中实际上不会设置任何内容(可以使用wp_using_ext_object_cache)

选项表中的存储就是WordPress在任何外部缓存(或本地对象缓存)之外处理瞬态的方式。

也就是说,要计算剩余时间,您可以这样做:

$expires = (int) get_option( \'_transient_timeout_MY_TRANSIENT_NAME\', 0 );
$time_left = $expires - time();
过期值的计算方法为time() 设置瞬态时传递的值,因此要获得剩余时间,只需减去time() 从过期设置的值

SO网友:Nathan Johnson

没有内置的WordPress函数来获取瞬时超时。但您可以使用以下函数来获取瞬时超时。

function get_transient_timeout( $transient ) {
    global $wpdb;
    $transient_timeout = $wpdb->get_col( "
      SELECT option_value
      FROM $wpdb->options
      WHERE option_name
      LIKE \'%_transient_timeout_$transient%\'
    " );
    return $transient_timeout[0];
}

SO网友:Mark Kaplun

根据定义,瞬变可以在任何时刻过期,无论您请求的时间间隔是什么,因此无法可靠地确定“过期时间”。你可以通过检查“原始”选项来破解一些东西,但依赖它是个坏主意。