2011-08-24 89 views
1

我正在设置最近的活动功能,从本周获取所有用户活动。不过,我不知道如何从本周开始所有活动,因为我需要比较现在和一周之前的日期。请你能告诉我我该怎么做?我正在使用MySQL数据库来保存所有的信息。我有表格,喜欢,关注,评论和帖子。我显然需要比较日期以获取所有表中的所有信息。如何在PHP中比较日期

我在我的MySQL数据库中插入日期时使用了这种方法。

function uk_date() { 
     $sign = "-"; 
     $h = "0"; 
     $dst = "true"; 
     if ($dst) { 
      $daylight_saving = date('I'); 
      if ($daylight_saving){ 
       if ($sign == "-"){ $h=$h-1; } 
       else { $h=$h+1; } 
      } 
     } 
     $hm = $h * 60; 
     $ms = $hm * 60; 
     if ($sign == "-"){ $timestamp = time()-($ms); } 
     else { $timestamp = time()+($ms); } 
     return $gmdate = gmdate("d/m/Y g:i:s A", $timestamp); 
    } 

另外,在我的分贝字段“日期”是不是一个时间戳,它是从上面的uk_date()方法生成的字符串。这是我不确定如何比较日期的地方。

+1

你看过strtotime函数吗? –

回答

1
select * from table where datetime_field > now() - interval 7 day 
+0

该字段不是时间戳,它是由uk_date()方法生成的字符串。 –

+0

但建议是 - 这不应该是任何“生成”日期。尽可能以数据的形式存储在数据库中,如果谈论日期,最简单的事情总是一个unix时间戳,因为它本来就是世界上大多数API处理的......(好吧,我知道我们可以讨论这个事实,但这不是重点) –

+0

@ XcodeDev;是的,但在我看来,他做的事情太复杂了。 –

1

不完全明白,为什么需要那么复杂,为什么与daylight_saving等工作...

是否有可能,你只需存入数据库调用时间的结果()?然后你将得到unix时间戳,并且很容易与其他所需的unix时间戳相比较。所有的算术都是微不足道的,我是对的吗?

+0

+1在数据库中使用UNIX而不是GMT。它更轻(性能),也更易于使用。 – toopay

+0

@yosh kemu请检查更新后的问题。 –

+0

对不起,我不能同意这一点。存储任何“d/m/Y g:i:s A”是麻烦的牺牲品。真的,这不会给你带来好处,还有很多缺点 - 但这当然是我个人的看法。不要存储任何“生成”日期。 –