функция даты в класс не работает

Я написал класс о переводе дат в разных форматах / языках. Но проблема в том, что когда я включаю в нее функцию даты, она, похоже, не работает. Ты знаешь почему ? Я сделал свой код легче с необходимыми для понимания проблемы:

class Test { public function test($timestamp, $format='d/m/Y') { return date($format, $timestamp); } } 

Хорошо, вот полный класс …

 class GetDateTime { private $_text_en_US = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "January", "February", "March", "April", "May","June", "July", "August", "September","October", "November", "December"); private $_text_fr_FR = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"); public function getDateTime($format='d/m/Y', $timestamp, $locale='fr_FR') { switch ($format) { case 'd/m/Y': case 'm/d/Y': return date($format, $timestamp); break; case 'ld F Y': return str_replace($_text_en_US, ${'_text_'.$locale}, date($format, $timestamp)); break; } } } 

… и как я это называю:

 include_once (BASE_DIR.'/lib/dateTime.class.php'); $dateTime = new GetDateTime(); 

Дело в том, что он не переводится, когда я звоню:

 echo $dateTime->getDateTime('ld F Y', date()); 

Solutions Collecting From Web of "функция даты в класс не работает"

Вы, вероятно, путаетесь, почему метод не возвращает то, что вы хотели.

new Test(time()) не возвращает форматированную дату, потому что метод test – это то же имя, что и класс, и из-за этого метод test становится конструктором этого класса. Вы не можете возвращать значения из конструктора, потому что при создании объекта возвращается ссылка на этот объект.

Переименуйте свой методный test на что-то другое, инициализируйте класс и вызовите этот новый метод:

 $obj = new Test; echo $obj->new_method(time() + 3600);