Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Секунды в дату (несказанное)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
St.
Отправлено: 12 Февраля, 2017 - 12:44:05
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Вот сообственно само решение: http://forum.php.su/topic.php?fo...93220#1486893220

Код вот:
PHP:
скопировать код в буфер обмена
  1. function second_v_date($sekund)
  2.  
  3. {
  4.  
  5.     $dt = new DateTime('@' . $sekund);
  6.     return array('days'    => $dt->format('z'),
  7.                  'hours'   => $dt->format('G'),
  8.                  'minutes' => $dt->format('i'),
  9.                  'seconds' => $dt->format('s'));
  10. }




Подскажите пожалуйста, как добавить год? Закатив глазки
Что означают буквы z, G, i, s? Не понял

(Отредактировано автором: 12 Февраля, 2017 - 12:47:13)

 
 Top
OrmaJever Модератор
Отправлено: 12 Февраля, 2017 - 14:29:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




St. пишет:
Подскажите пожалуйста, как добавить год?

считаем что в году только 365 дней
PHP:
скопировать код в буфер обмена
  1. function second_v_date($sec)
  2. {
  3.         return [
  4.                 'year'    => intval($sec/0x1E13380),
  5.                 'days'    => intval($sec%0x1E13380/86400),
  6.                 'hours'   => intval($sec%0x1E13380%86400/3600),
  7.                 'minutes' => intval($sec%0x1E13380%86400%3600/60),
  8.                 'seconds' => $sec%0x1E13380%86400%3600%60
  9.         ];
  10. }
  11. print_r(second_v_date(34754450));


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
St.
Отправлено: 12 Февраля, 2017 - 14:58:20
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Спасибо. Улыбка

Дополнение.
% - возвращает 1 - если есть остаток от деления. 0 - если нет.
10%5 - будет 0.
5%2 - будет 1.

0x1E... - шестнадцатеричное число.

(Отредактировано автором: 12 Февраля, 2017 - 15:08:14)

 
 Top
OrmaJever Модератор
Отправлено: 12 Февраля, 2017 - 15:59:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




St. пишет:
% - возвращает 1 - если есть остаток от деления. 0 - если нет.

нет, % это остаток от деления, 13 % 5 будет 3, т.к. 10 ровно делится на 5, а 3 это остаток от деления.
Аналог
PHP:
скопировать код в буфер обмена
  1. $num1 = 13;
  2. $num2 = 5;
  3. echo $num1 - intval($num1/$num2)*$num2;


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
St.
Отправлено: 13 Февраля, 2017 - 17:25:38
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Спасибо.

Вот (как-то так): http://math-prosto[dot]ru/?page=page[dot][dot][dot]th_remainder.php
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB