2013-07-01 3 views
0

Я пытаюсь использовать CakePHP's TimeHelper.CakePHP с наибольшей точностью

Скажем, у меня есть эта дата: Tue, 07 Jun 2011 10:53:31 GMT

Его время эпохи: 1307444011

мне нужно, чтобы получить разницу выход с теперь, как это: 2 years, 24 days, 15 hours, 27 minutes and 43 seconds

Я попытался это:

$userCreatedTimeStr = $this->Time->timeAgoInWords(
     1307444011, array(
     'end' => '+10 year', 
     'accuracy' => array('second' => 'second') 
    ) 
); 

Но этот код дает 2 years ago.

Как это исправить?

Edit: некоторые тестовый код выглядит так: http://apigen.juzna.cz/doc/cakephp/cakephp/source-class-CakeTimeTest.html#189-229

Похоже, с использованием основных PHP функций является обязательным, а не TimeHelper.

How to calculate the difference between two dates using PHP?

How to get time difference in minutes in PHP

ответ

3

Попробуйте положить в опции 'формат' в массиве параметров?

Например:

$userCreatedTimeStr = $this->Time->timeAgoInWords(
     1307444011, array(
     'end' => '+10 year', 
     'format' => 'F jS, Y', 
     'accuracy' => array('second' => 'second') 
    ) 
); 

EDIT: CakePHP ограничивает метод timeAgoInWords следующим образом:

Если разница одна неделя или больше, самый низкий уровень точности день

Источник: http://api.cakephp.org/2.3/class-CakeTime.html#_timeAgoInWords

Я думаю, то, что вы пытались сделать просто, невозможно с помощью этого метода, по крайней мере, в версии 2.3.

+0

Это дает 2 года, 3 недель, 3 дня назад – trante

+0

Да, это был просто пример. Я не очень хорошо знаю параметры для PHP-времени, но он дает представление о том, что вам нужно. Если вы подождете несколько минут, я, вероятно, смогу точно определить, что ввести. – SharkofMirkwood

+0

Конечно, спасибо. – trante

Смежные вопросы