Joomla 3.2.3でsetOffset()を使用する方法


7

コンポーネントをjoomla 2.5からjoomla 3.2に移行していますが、setOffsetを使用しているメソッドでエラーが発生しました

//old version used in joomla 2.5 

$data->setOffset(JFactory::getConfig()->get('offset'));

私はリンクを参照しました:http : //docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2

//after i  refered the above link i changed my code  like 

if($date === null ) {   
  $date = JFactory::getDate();
  $tz = JFactory::getConfig()->get( 'offset' );

  // new Version 
  $date->setTimezone($tz);

  $date = $date->format( "%Y-%m-%d" );
}

エラーが出ます-

DateTime::getTimezone() expects exactly 0 parameters, 1 given  /example.php on line 5 .

Plzはエラーを修正するためのソリューションを必要としています


コードにはgetTimezone()がないので、example.phpの5行目はどこにありますか?ところで、$ date = JFactory :: getDate( 'now'、$ tz);を使用できます。
Harald Leithner 2014

回答:


6

最後に、オブジェクトをDateTimeZoneパラメーターとして渡すことにより、このエラーの解決策を見つけました(以下$date->setTimezone(new DateTimeZone($tz));のコードのに注意してください)。正常に動作しています。

if($date === null )
{
  $date = JFactory::getDate();
  $tz = JFactory::getConfig()->get( 'offset' );

  $date->setTimezone(new DateTimeZone($tz)); //here!

  $date = $date->format( "Y-m-d" );
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.