我在挪威编码一个基于文本的黑手党游戏,需要时间检测的帮助。事情是这样的。如果玩家购买产品的时间超过午夜(24小时时钟),则删除mysql记录。以下是我尝试过的方法,但不确定这是最好的方法:
// Har livvakt? (Has bodyguard)
if($this->isTheftProtected($user_id)){
$sql = mysql_query("SELECT * FROM `UserTing` WHERE t_meta = '2' AND t_owner = '".$user_id."'");
$rows = mysql_fetch_array($sql);
$timeThen = date("Hi", $rows["t_time"]);
$theNow = date("Hi");
if($timeThen > 0000){
// Slett produktet <- Delete here... past midnight.
} else {
// Behold.
}
} else {
return;
}那么有没有更好的方法。是否应该考虑使用time()?我的问题是如何做到这一点。致以问候。;)
发布于 2012-07-29 13:55:47
您可能需要添加cronjob或仅在SELECT之前运行此查询以删除旧记录。
DELETE FROM `t1` WHERE DATE(`created`) < CURDATE();JOINS也可以使用...
发布于 2012-07-29 13:31:50
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestampdiff
mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
返回128885
所以在逻辑上;
SELECT * FROM UserTing WHERE TIMESTAMPDIFF(SECOND, NOW(), t_time) >= (60 * 60 * 24) AND t_owner = {$user_id}
对于t_owner,显示比当前时间早24小时的值。
编辑3:确保您始终将MySQL时间比较与MySQL或PHP一起使用。但不能两者都有,因为两者之间存在允许的时间差异。(它们有时可以相差长达一个小时而不会出现错误。)
https://stackoverflow.com/questions/11706894
复制相似问题