Return两个DateTime对象使用KnpTimeBundle的区别
Return the difference between two DateTime objects using KnpTimeBundle
我正在尝试使用 KnpTimeBundle 获取之前的日期时间。
正如文档所说,我需要使用助手 class 来访问 diff() 函数:
看看我的 controller.php :
use Knp\Bundle\TimeBundle\Templating\Helper as Helper;
/**
* @Route("/test",name="test")
* @Method({"GET","POST"})
*/
public function testAction(Request $request){
$date = new \DateTime("now");
$h=new Helper();// here i got a 404 error
$ago=$h->diff($date);
return $this->render('test.html.twig', array());
}
但是通过这种方式调用 Helper class 对我没有用,谁能告诉我正确的方法来完成这个技巧。
我只是创建自己的服务,不需要捆绑包:
<?php
namespace AppBundle\Services;
class Helpers {
public function pluralize( $count, $text )
{
return $count . ( ( $count == 1 ) ? ( " $text" ) : ( " ${text}s" ) );
}
function ago( $datetime )
{
$interval = date_create('now')->diff( $datetime );
$suffix = ( $interval->invert ? ' ago' : '' );
if ( $v = $interval->y >= 1 ) return $this->pluralize( $interval->y, 'year' ) . $suffix;
if ( $v = $interval->m >= 1 ) return $this->pluralize( $interval->m, 'month' ) . $suffix;
if ( $v = $interval->d >= 1 ) return $this->pluralize( $interval->d, 'day' ) . $suffix;
if ( $v = $interval->h >= 1 ) return $this->pluralize( $interval->h, 'hour' ) . $suffix;
if ( $v = $interval->i >= 1 ) return $this->pluralize( $interval->i, 'minute' ) . $suffix;
return $this->pluralize( $interval->s, 'second' ) . $suffix;
}
在我的 services.yml 中:
服务:
app.helpers:
class: AppBundle\Services\Helpers
arguments: [ "@doctrine.orm.entity_manager" , "@service_container" ]
然后我就打电话了:
$helpers = $this->get("app.helpers");
$helpers->ago($date);
我正在尝试使用 KnpTimeBundle 获取之前的日期时间。
正如文档所说,我需要使用助手 class 来访问 diff() 函数:
看看我的 controller.php :
use Knp\Bundle\TimeBundle\Templating\Helper as Helper;
/**
* @Route("/test",name="test")
* @Method({"GET","POST"})
*/
public function testAction(Request $request){
$date = new \DateTime("now");
$h=new Helper();// here i got a 404 error
$ago=$h->diff($date);
return $this->render('test.html.twig', array());
}
但是通过这种方式调用 Helper class 对我没有用,谁能告诉我正确的方法来完成这个技巧。
我只是创建自己的服务,不需要捆绑包:
<?php
namespace AppBundle\Services;
class Helpers {
public function pluralize( $count, $text )
{
return $count . ( ( $count == 1 ) ? ( " $text" ) : ( " ${text}s" ) );
}
function ago( $datetime )
{
$interval = date_create('now')->diff( $datetime );
$suffix = ( $interval->invert ? ' ago' : '' );
if ( $v = $interval->y >= 1 ) return $this->pluralize( $interval->y, 'year' ) . $suffix;
if ( $v = $interval->m >= 1 ) return $this->pluralize( $interval->m, 'month' ) . $suffix;
if ( $v = $interval->d >= 1 ) return $this->pluralize( $interval->d, 'day' ) . $suffix;
if ( $v = $interval->h >= 1 ) return $this->pluralize( $interval->h, 'hour' ) . $suffix;
if ( $v = $interval->i >= 1 ) return $this->pluralize( $interval->i, 'minute' ) . $suffix;
return $this->pluralize( $interval->s, 'second' ) . $suffix;
}
在我的 services.yml 中: 服务:
app.helpers:
class: AppBundle\Services\Helpers
arguments: [ "@doctrine.orm.entity_manager" , "@service_container" ]
然后我就打电话了:
$helpers = $this->get("app.helpers");
$helpers->ago($date);