首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测已经过了午夜的时间?

问如何检测已经过了午夜的时间?
EN

Stack Overflow用户
提问于 2012-07-29 13:21:01
回答 2查看 691关注 0票数 1

我在挪威编码一个基于文本的黑手党游戏,需要时间检测的帮助。事情是这样的。如果玩家购买产品的时间超过午夜(24小时时钟),则删除mysql记录。以下是我尝试过的方法,但不确定这是最好的方法:

代码语言:javascript
复制
// 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()?我的问题是如何做到这一点。致以问候。;)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-29 13:55:47

您可能需要添加cronjob或仅在SELECT之前运行此查询以删除旧记录。

代码语言:javascript
复制
DELETE FROM `t1` WHERE DATE(`created`) < CURDATE();

JOINS也可以使用...

票数 1
EN

Stack Overflow用户

发布于 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一起使用。但不能两者都有,因为两者之间存在允许的时间差异。(它们有时可以相差长达一个小时而不会出现错误。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11706894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档