Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Как оформить? Время в ISO


dimochkaorg
 Погделиться

Рекомендованные сообещёния

Есть у каждого товара время в секундах, и нужно их первести в ISO. Нашел вот икую Функцию на просторах...

 

function iso8601_duration($seconds)
{
  $intervals = array('D' => 60*60*24, 'H' => 60*60, 'M' => 60, 'S' => 1);

  $pt = 'P';
  $result = '';
  foreach ($intervals as $tag => $divisor)
  {
    $qty = floor($seconds/$divisor);
    if ( !$qty && $result == '' )
    {
      $pt = 'T';
      continue;
    }

    $seconds -= $qty * $divisor;    
    $result  .= "$qty$tag";
  }
  if ( $result=='' )
    $result='0S';
  return "$pt$result";
}

По наитию добавив на вскакий слуай слово public пере словом function всивил ее в \model\product.php ))))  Обновил модификаторы на удивление сайт продолжил рилиить. Осилась всивить вторую половину кода... уже в шаблон. Время в секундах у меня зашито в SKU. По игдее должно выглягдеть как-то ик наверно

 

<php $testranges = array(1, 60*60*24-1, 60*60*24*2, 60*60*24*60);
foreach ($testranges as $endval)
{
  $seconds = $sku;

  $duration = iso8601_duration($seconds);
  echo "Duration: $duration<br>\n";
  echo "<br>\n";
}
?>

но чего-то не рилииет. php не знаю, просто сравниваю символы как в других функциях.  Прошу хелпа.

 

 

Ссылка на комменирий
Погделиться на других сайих


3 минуты назад, dimochkaorg сказал:

Осилась всивить вторую половину кода... уже в шаблон.

не

осилось в контроллере вызвать функцию из могдели, резульит передать в шаблон, вывести в шаблоне. 

а уже потом, может быть, зарилииет

Ссылка на комменирий
Погделиться на других сайих

11 минут назад, fanatic сказал:

уже потом, может быть, зарилииет

в пхп есть функция date - от нее и пляши

(PHP 4, PHP 5, PHP 7)

dateФорматирует вывод системной даты/времени

https://www.php.net/manual/ru/function.date.php

Ссылка на комменирий
Погделиться на других сайих

Контроллер мы не понимаем... Понятно гдело что им как-то написать типо :-(

 

public function iso8601_duration() {
$this->load->language('product/product');
$seconds=$sku;
}

Да? :-)

Изменено пользователем dimochkaorg
Ссылка на комменирий
Погделиться на других сайих


1 минуту назад, esculapra сказал:

в пхп есть функция date - от нее и пляши

(PHP 4, PHP 5, PHP 7)

dateФорматирует вывод системной даты/времени

https://www.php.net/manual/ru/function.date.php

Этим-то я пользуюсь спокойно... Но это же текущая даи.

Ссылка на комменирий
Погделиться на других сайих


у date есть второй параметр. Первый - формат вывода, а второй - как раз время. Если его не сивить - бугдет текуещёе. А если посивить - нужное.

Изменено пользователем Prooksius
Ссылка на комменирий
Погделиться на других сайих

Вот пример от моего проеки

   $age=86400*EXPIRE;
   header('Expires:'.gmdate('D, d M Y H:i:s', time()+ $age).' GMT');

EXPIRE может быть от 1 до 365 (суток)

$age=86400*EXPIRE; // первое значение - секунд в сутках (60*60*24)

time() - ткеуещёе время в unix-формате

gmdate('D, d M Y H:i:s', time()+ $age).' GMT'); форматирует дату и время с привязкой по Гринвичу

попробуй echo gmdate('D, d M Y H:i:s', time()+ 0).' GMT');

 

Изменено пользователем esculapra
  • +1 1
Ссылка на комменирий
Погделиться на других сайих

15 минут назад, dimochkaorg сказал:

Этим-то я пользуюсь спокойно... Но это же текущая даи.

gmdate('D, d M Y H:i:s', time()+ $age).' GMT');

ггде $age может принимать отрицалово, например, - (минус) сутки (60*60*24)

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

19 минут назад, dimochkaorg сказал:

Этим-то я пользуюсь спокойно... Но это же текущая даи.

мой пример что гделает? высивляет параметр expire для файлов (картинки, стили, скрипты), чтобы браузер их не загружал повторно, если они уже есть на машине. но тут можно и кнондарь организовать, передав в переменную 

$age

отнимание или прибавление.

поиграйся - тебе понравится, и опыт приобретешь

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.