2013-02-27 60 views
1

您好我正在尝试以“上次更新:10分钟前”或“上次更新:1小时前”或“上次更新:昨天“或”最近更新:三天前“等。如何在社交引擎上获取发布时间戳

我希望能够回显时间戳。 请找什么,我已经有以下:

$currentUserID=Engine_Api::_()->user()->getViewer()->getIdentity(); 
$sSqlInviter="select creation_date from engine4_core_status where resource_id=".$currentUserID; 
$dbInviterSqli=Zend_Db_Table_Abstract::getDefaultAdapter(); 
$stmtInviter=$dbInviterSqli->query($sSqlInviter); 
$rowInviter=$stmtInviter->fetch(); 
$post_time_count=$rowInviter['creation_date']; 
echo $this->timestamp($post_time_count); 

,但它开始从当我刷新页面计数。

在此先感谢

我已经能够解决过这个..

$sSqlInviter="select creation_date from engine4_core_status where resource_id=".$currentUserID." order by creation_date desc limit 1"; 

感谢

回答

1

看起来你已经得到了您的分贝的时间,但问题是如何考虑时区使用它。您可以尝试使用此代码的部分:

$oldTz = date_default_timezone_get();    // get old timezone 
date_default_timezone_set($viewer->timezone);  // temporarily set user's timezone as default 
$start = strtotime($starttime);      // do something you need 
date_default_timezone_set($oldTz);     // set default timezone back for the rest part of controller 
$starttime = date('Y-m-d H:i:s', $start);   // use existing data 

希望这有助于。

+0

谢谢@Kirk Hammett,我是一名婴儿开发人员,只是试图创造一些有效的工作。我知道我没有做到这一点,因为最后会设置多个连接到数据库。我有什么工作,但只需要帮助,以简化它。 like: '$ currentUserID = Engine_Api :: _() - > user() - > getViewer() - > getIdentity() - > getLastPostTime();'只是寻找一个简单的方法来完成它,而不是连接到数据库,因为这是穿我。谢谢 – 2013-03-01 11:15:23

+1

没问题:) 你可以使用你喜欢的任何模块的API。例如,Engine_Api :: _() - > user() - > yourMethod();将yourMethod()放入User/Api/Core.php。在yourMethod()内部,你可以准备并返回任何你需要的东西。 – 2013-03-13 17:11:57

+0

欢呼@Kirk Hammett – 2013-03-14 14:53:33