Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Сделать время по нарастающей
littleman  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Подскажите как лучше сделать время по нарастающей ?
Есть время 16:50:30
И нужно сделать шаг до 16:52:25
Шаг состоит из 5 секунд.
Вот так чтобы выглядело.
16:50:30
16:50:35
16:50:40
16:50:45
16:50:50
16:50:55
16:51:00
16:51:05

Или вот так на другие сутки
23:59:50
23:59:55
00:00:00
00:00:05

В голову не чего не приходит как решить лучше.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 5 дней
Карма: 77




$start = mktime(16, 50, 30, date("m"), date("d"), date("Y"));
$finish = mktime(date("H", $start), date("i", $start)+1, date("s", $start)+55, date("m", $start), date("d", $start), date("Y", $start));
for ($i = $start; $i <= $finish; $i = $i+5) {
echo '<br>'.date('H:i:s', $i);
}
Не самое оптимальное решение конечно.

Это сообщение отредактировал Kusss - 27.02.2016 - 17:19
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









А мне больше DateTime нравится. У него есть красивый метод modify:

// в пределеах одних суток
$end = DateTime::createFromFormat('H:i:s', '16:52:25');
$end = DateTime::createFromFormat('H:i:s', '16:52:25');

// или если разные сутки
//$current = DateTime::createFromFormat('Y-m-d H:i:s', '2016-02-27 16:50:30');
//$end = DateTime::createFromFormat('Y-m-d H:i:s', '2016-02-28 00:00:05');


do {
echo $current->format('H:i:s') . PHP_EOL;
$current->modify('+5 seconds');
} while($current <= $end);


http://ideone.com/4SL640
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









P.S. Опечатка тут у меня:
$end = DateTime::createFromFormat('H:i:s', '16:52:25');
$end = DateTime::createFromFormat('H:i:s', '16:52:25');


Ну думаю понятно, что вместо первого $end должно быть $current.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 5 дней
Карма: 77




$start = strtotime('1970-01-01 16:50:30');
$finish = strtotime('1970-01-01 16:52:25');

так поболее читаемо
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
littleman  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Спасибо !!! Kusss и Guest Бомба а не код ! Ща буду дальше допиливать, а то собрал как-то вело тренажёр, писаны на городил и сам запутался biggrin.gif
Благодарю !
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
littleman  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Kusss
Я написал про время, у меня как раз там ещё дата прописывается .
2016-02-27-16-55-30
Только без тире, но ща я переделаю под себя Спасибо еще раз !
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
littleman  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Передалал под себя всё в норме, как нужно, одна проблемка, переносит на след. строку расширение как сделать чтобы этого не было ?
Получается вот так.
#EXTINF:680000,
live-20160227165035
.ts
#EXTINF:680000,
live-20160227165040
.ts
#EXTINF:680000,
live-20160227165045
.ts
#EXTINF:680000,
live-20160227165050
.ts
#EXTINF:680000,
live-20160227165055
.ts
#EXTINF:680000,
live-20160227165100
.ts

А нужно
Чтобы .TS в один ряд .
#EXTINF:680000,
live-20160227165055.ts



$start = DateTime::createFromFormat('YmdHis', '20160227165030');
$finish = DateTime::createFromFormat('YmdHis', '20160227165225');


$file = "live.m3u8";
//если файла нету... тогда
if( !file_exists($file)) {
$fp = fopen($file, "w+"); // ("r" - считывать "w" - создавать "a" - добовлять к тексту), мы создаем файл
fwrite($fp, "#EXTM3U\n #EXT-X-TARGETDURATION:10\n #EXT-X-PLAYLIST-TYPE:VOD\n");
do {
$k = $start->format('YmdHis') . PHP_EOL;
fwrite ($fp, "#EXTINF:680000,\nlive-".$k.".ts\n" );
$start->modify('+5 seconds');

} while($start <= $finish);
fwrite($fp,"#EXT-X-ENDLIST");
fclose ($fp);
}

Вроде не какие <BR> и \n нет на след. сроку.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Ну PHP_EOL это же \n и есть.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2488
Пользователь №: 18040
На форуме: 7 лет, 5 месяцев, 22 дня
Карма: 77




// Обходим циклом 10 раз
for ($x = 1; $x <= 10; $x++) {

// Форматируем время и выводим с интервалом в 5 сек.
echo date('H:i:s', strtotime('+' . ($x * 5) . ' second')) . PHP_EOL;
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса