用这个计算剩余时间?
如果时间到了,我写出了一个脚本来将用户的密钥活动状态更改为0。当我开始的时候,我把start_time
设置为time();比设定“60”的时间要多少天。用这个计算剩余时间?
根据我目前的做法,我如何计算一天或几小时或几分钟剩余的时间?
$user_info['days'] = "60"
`start_time` = 1332219600
function setup() {
mysql_connect('localhost', 'stresser_main', 'ZLLAUkuLIUU');
mysql_select_db('stresser_main');
$query = mysql_query("SELECT * FROM `keys` WHERE `active`='1'");
while ($user_info = mysql_fetch_array($query)) {
$time_ago = strtotime("-" . $user_info['days'] . " day");
$time_ago_other = strtotime("+" . $user_info['days'] . " day");
mysql_query("UPDATE `keys` SET `active`='0' WHERE `start_time` < $time_ago AND `id`='" . $user_info['id'] . "'");
}
}
-
不要做这样的思考。只更新查询。如果您有1000个活动= 1的用户已过期,那么您将执行1000次更新查询。这样您将执行1个查询来解决您的问题。没有选择,而需要。
mysql_query("UPDATE keys SET active = 0 WHERE active = 1 AND start_time < $something");
不要像
'WHERE start_time < NOW()'
的SQL一切。你也可以在sql上进行计算。在这里你有很多SQL函数https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 这将更快,更安全。请勿使用mysql_函数。使用mysqli_或PDO。
在表上使用datetime字段,而不是整数unix时间戳。您将能够使用SQL日期函数。
使用\ DateTime()代替strtotime。
PDO Imo很烦人,mysqli不提供尽可能多的函数和mysql是好的。 – user2186257 2013-03-19 15:49:23
现在使用mysqli :)第一次使用它;我真的很喜欢它。 – user2186257 2013-03-19 18:16:31
PDO烦人? mysqli有没有那么mysql的功能?我建议你尝试OOP并阅读sql注入。 另请阅读:http://www.php.net/manual/en/function.mysql-query.php mysql_已正式被弃用。没有更多的支持。 我给你5分想一想。希望它会有所帮助。如果是,费率。 – imclickingmaniac 2013-03-19 20:30:20
'的strtotime();'可以采取两个参数,第二个是时间戳,即是起点(它会默认到现在),所以如果你做'的strtotime(“+ 60天”的,1332219600) ;'它会告诉你到期的时间戳 – Waygood 2013-03-19 11:32:49