Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579

Работа с датой

23.07.2016, 18:56. Показов 1573. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. В БД есть дата в таком виде:

19:40:00 25:07:2016

Мне нужно сделать обратный отчет, чтобы от текущей даты и времени вывелась примерно такая запись:

До события: количество дней:часы:минуты:секунды (в данном случае примерно так: 02:00:40:53). Как можно такое реализовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.07.2016, 18:56
Ответы с готовыми решениями:

Работа с датой
Добрый вечер, уважаемые пользователи ! Подскажите пожалуйста, почему вот этот кусочек кода возвращает текущий год ? echo...

Работа с датой
Как проще всего вычислить прошло ли после последнего запуска скрипта 2 часа или нет? Получаешь текущую дату, записываешь её, а дальше чёт...

Работа с датой
Привет всем. Нужно получить разницу между двумя датами в днях. Если сделать так: $datetime1 =...

9
Ушел наливать чай
 Аватар для Stas_Garcia
188 / 138 / 32
Регистрация: 02.03.2013
Сообщений: 650
23.07.2016, 19:03
Лучший ответ Сообщение было отмечено Dmitrin как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
 
    function downcounter($date){
        $check_time = strtotime($date) - time();
        if($check_time <= 0){
            return false;
        }
 
        $days = floor($check_time/86400);
        $hours = floor(($check_time%86400)/3600);
        $minutes = floor(($check_time%3600)/60);
        $seconds = $check_time%60; 
 
        $str = '';
        if($days > 0) $str .= declension($days,array('день','дня','дней')).' ';
        if($hours > 0) $str .= declension($hours,array('час','часа','часов')).' ';
        if($minutes > 0) $str .= declension($minutes,array('минута','минуты','минут')).' ';
        if($seconds > 0) $str .= declension($seconds,array('секунда','секунды','секунд'));
 
        return $str;
    }
 
    function declension($digit,$expr,$onlyword=false){
        if(!is_array($expr)) $expr = array_filter(explode(' ', $expr));
        if(empty($expr[2])) $expr[2]=$expr[1];
        $i=preg_replace('/[^0-9]+/s','',$digit)%100;
        if($onlyword) $digit='';
        if($i>=5 && $i<=20) $res=$digit.' '.$expr[2];
        else
        {
            $i%=10;
            if($i==1) $res=$digit.' '.$expr[0];
            elseif($i>=2 && $i<=4) $res=$digit.' '.$expr[1];
            else $res=$digit.' '.$expr[2];
        }
        return trim($res);
    }
?>
Использование:
PHP
1
<?=downcounter('2013-12-31 23:59:59');?>
1
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
23.07.2016, 19:06  [ТС]
Stas_Garcia, Прекрасно! То, что нужно, спасибо.
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.07.2016, 19:08
Лучший ответ Сообщение было отмечено Dmitrin как решение

Решение

PHP
1
2
3
4
$datetime1 = date_create('2016-05-11 15:46:49');
$datetime2 = date_create('2016-10-13 01:25:30');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%a дн., %H ч., %i мин., %s сек.');
Добавлено через 1 минуту
Stas_Garcia, как-то мало кода... Можно было и побольше
1
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
23.07.2016, 19:09  [ТС]
Да, второй вариант действительно намного проще и компактнее))
0
23.07.2016, 19:12

Не по теме:

Цитата Сообщение от Пифагор Посмотреть сообщение
как-то мало кода...
Зато какой навороченный 8-)

0
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
23.07.2016, 20:41  [ТС]
Пифагор, может Вы и подскажите, как сделать так:

Имеется дата 19:40:00 25:07:2016

И имеется строковое поле с часами:минутами:секундами. Например, 12:40:30.

Как можно прибавить это строковое поле к дате?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.07.2016, 21:03
PHP
1
2
3
4
5
6
7
$d1 = '2016-07-25 19:40:00';
$d2 =  '12:40:30';
$d3 = explode(":", $d2);
 
$date = new DateTime('2016-07-25 19:40:00');
$date->add(new DateInterval('PT'.$d3[0].'H'.$d3[1].'M'.$d3[2].'S'));
echo $date->format('Y-m-d H:i:s'); //2016-07-26 08:20:30
1
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
23.07.2016, 21:11  [ТС]
Пифагор, Спасибо большое) Очень помогли!
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.07.2016, 21:12
Не за что.
PHP
1
$d1 = '2016-07-25 19:40:00';
Лишняя строка. Можно убрать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.07.2016, 21:12
Помогаю со студенческими работами здесь

Работа с датой
Здравствуйте. Никак не могу разобраться как работать с датой в PHP. Мне приходит дата в формате &quot;2017-01-17T00:00:00&quot;. Как...

Работа с датой
Здравствуйте. Предположим я извлек из базы некую дату со временем (datatime) и записал ее в переменную $vremi . И хочу например, если с...

Работа с датой
Делаю по книге самое простое: &lt;?php $d = date(&quot;d-m-Y&quot;); echo &quot;Сегодня $d&quot;; ?&gt; Получаю следующую...

Работа с датой
$oldDate = '2016-04-20'; $day = 3; // через сколько дней обновить $rs = date(&quot;Y-m-d&quot;, strtotime(&quot;now -$day days&quot;)); //...

Работа с Датой
Ребята, такая задачка помогите решить. Как реализовать: Сегодня дата 14.12.2015 11:35 Нужно что бы автоматом добавляло + 3 дня:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru