【发布时间】:2013-04-30 14:23:41
【问题描述】:
我正在创建一个 WordPress 插件,我希望它在数据库中存储一个 UNIX 时间戳,然后在一个小时或更长时间后更新数据库条目。
这是我插件中的代码 sn-p:
const DB_TIME = 'my_database_key';
$db_option_time = get_option ( DB_TIME );
$now = time();
switch ( $db_option_time ) {
case false:
update_option ( DB_TIME, $now );
break;
case true:
$time_difference = $now - $db_option_time;
if ( $time_difference >= 3600 ) {
update_option ( DB_TIME, $now );
}
break;
default:
break;
}
如果我在 $db_option_time 和 $now 变量上运行 var_dump(),它会显示两个不同的时间戳,但 $db_option_time 时间戳与数据库中保存的时间戳不同!
根据$now 变量检查数据库中的时间戳时,差异大于 3600 秒(使用我可信赖的计算器检查时)。我认为get_option WordPress 功能出了点问题?
这是一个例子:
- 数据库条目(在 phpMyAdmin 中检查)是 1367324833
-
get_option()WordPress 函数返回 1367330177(如var_dump()上的$db_option_time变量所示)
似乎get_option() 函数正在从数据库中提取正确的时间戳,然后对其进行处理?
【问题讨论】:
-
只做一个调试——打印
$now,打印$db_option_time,打印$time_difference... -
我刚刚更新了我的原始帖子。
$now是正确的,但问题似乎是get_option()函数更改了从数据库中读取的值,因为它被保存到我的$db_option_time变量中。 -
get_option()of db_time 应该进行更新和获取以获取最新的 DB_TIME
标签: php wordpress variables time comparison