Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
1

Разбор datetime

19.05.2011, 13:37. Показов 1290. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В БД дата вписывается в формате datetime

2011-05-18 00:00:00

Как проще всего вывести на экран последние 20-30 минут.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2011, 13:37
Ответы с готовыми решениями:

Объект DateTime
пытаюсь создать обьект DataTime: $datetime1= new DateTime('2015-07-23 16:25:27'); $datetime2...

DateTime Unix
Добрый вечер. В почему при объявлении DateTime не могу вставить unix формат даты, ошибку выдает....

Запросить в form datetime
Гуру, посоветуйте... Не знаю куда спрашивать - php или javascript Надо спросить пользователя в...

Привести DateTime к строке
Здравствуйте. При выполнении запроса устанавливаю дату в значение: $date = new \DateTime('now');...

4
15 / 15 / 4
Регистрация: 13.05.2011
Сообщений: 75
19.05.2011, 13:46 2
Что значит вывести последние 20-30 минут? ICEBERG@, пожалуйста, выражайтесь корректней.
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
19.05.2011, 16:36  [ТС] 3
Ну что тут не понятного?
Исключить год, месяц, день.
Проанализировать данные по часам 2011-05-18 00:00:00 и определить какие записи были сделаны за последние 20-30 минут.
0
21 / 21 / 3
Регистрация: 05.05.2011
Сообщений: 62
19.05.2011, 16:54 4
нужно использовать функции mysql: subdate и now.
Тогда условие на поле будет таким
поле >=subdate(now(),INTERVAL 30 MINUTE)
1
4 / 3 / 2
Регистрация: 03.09.2013
Сообщений: 141
24.08.2018, 23:36 5
Здравствуйте.
Закину сюда вопрос.
У меня раньше был алгоритм, который в рекурсии записывал время в БД, которое автоматически записывалось с заданным интервалом Х.
выглядит так:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
echo "
    <div class=\"row\">
        <div class=\"col-sm-12 center-align social\">
            <center> <b> Добавление записей с промежутками между заданным интервалом по *N* минут </b> </b><br><br></center>
            <form action=\"".$_SERVER['REQUEST_URI']."\" method=\"post\">
            <table border=\"2\" width=\"60%\" align=\"center\"> <tr align=\"center\"><td>";
            echo "
            Город: <select name=\"sity\">
            <option value=\"1\">Лесной</option>
            <option value=\"2\">Нижняя Тура, мужской зал</option>
            <option value=\"3\">Нижняя Тура, женский зал</option>
            </select>
            <br><br>
            ";
            echo "Мастер: <select name=\"master\">";
            $selmaster_2_sql = mysql_query( " SELECT * FROM $tbname_master ORDER BY master_fio ASC " ) or die ("Error".mysql_error());
            while ($selmaster2 = mysql_fetch_array($selmaster_2_sql)) {
            echo "
            <option value=\"".$selmaster2['idmaster']."\">".$selmaster2['master_fio']."</option>
            ";
            }
            echo "</select>";
            echo "
            <br><br>
            <input type=\"text\" id=\"datetimepicker2-1\" name=\"openzapiscal\">
            интервал
            <select name=\"interval\">
            <option value=\"5\">5</option>
            <option value=\"10\">10</option>
            <option value=\"15\">15</option>
            <option value=\"20\" selected=\"selected\">20</option>
            <option value=\"25\">25</option>
            <option value=\"30\">30</option>
            </select>
            мин.,
            c
            <input type=\"text\" id=\"datetimepicker2-2\" size=\"6\" name=\"time1\">
            по
            <input type=\"text\" id=\"datetimepicker2-3\" size=\"6\" name=\"time2\">
            <br><br> <input type=\"submit\" class=\"adm\" value=\"Записать\" name=\"addrunauto\">
            </td></tr></table>
            </form>
            <script>
            $.datetimepicker.setLocale('ru');
            $('#datetimepicker2-1').datetimepicker({
                timepicker:false,
                format:'d/m/Y',
                formatDate:'Y/m/d'
            });
            $('#datetimepicker2-2').datetimepicker({
                datepicker:false,
                format:'H:i',
                defaultTime:'09:00',
                step:20
            });
            $('#datetimepicker2-3').datetimepicker({
                datepicker:false,
                format:'H:i',
                defaultTime:'09:00',
                step:20
            });
            </script>
        </div>
    </div>
";
echo "
</div>
";
Запись производилась так:
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
###################################### Запись автодобавлением по Х минут
if (isset($_POST['addrunauto'])) {
require_once("barber_config.php");
$hour1 = substr($_POST['time1'], 0, 2);
$minut1 = substr($_POST['time1'], -2);
$hour2 = substr($_POST['time2'], 0, 2);
$minut2 = substr($_POST['time2'], -2);
// echo "$hour1<br>$minut1<br>-<br>$hour2<br>$minut2<br>";
$date_elements  = explode("/",$_POST['openzapiscal']);
// $date_elements[0] = день
// $date_elements[1] = месяц
// $date_elements[2] = год
$dateofevent = mktime(0,0,0,(int)$date_elements[1],(int)$date_elements[0],(int)$date_elements[2]);
$dateofevent1 = mktime($hour1,$minut1,0,(int)$date_elements[1],(int)$date_elements[0],(int)$date_elements[2]);
$dateofevent2 = mktime($hour2,$minut2,0,(int)$date_elements[1],(int)$date_elements[0],(int)$date_elements[2]);
// echo " $dateofevent1 - $dateofevent2 ";
$interval = (int)$_POST['interval'];
$interval_end = $interval*60;
// echo "<br>$interval-$interval_end<br>";
 
for($dateofevent1 > 1; $dateofevent1 <= $dateofevent2; $dateofevent1 += $interval_end){
$timetobase = date('H:i', $dateofevent1);
// echo " <br> $dateofevent - $dateofevent1 - $timetobase ";
mysql_query("INSERT INTO $tbl_record VALUES ('','$dateofevent','$timetobase','".$_POST['master']."','','','','','','".$_POST['sity']."')") or die ("Error".mysql_error());
}
header ("location: record_index.php");
}
Я сейчас хочу уйти от UNIX/Date, применяя DateTime и UTC
Если есть возможность, просьба помочь. Я пока тоже копаюсь еще.

Добавлено через 1 час 30 минут
В общем, тут тоже цикл for думаю должен применяться.
Есть начальная дата
PHP
1
[date] => 2018-08-25 09:00:00.000000
- date_start
и конечная
PHP
1
[date] => 2018-08-25 11:40:00.000000
- date_end
PHP
1
$interval
- переменная, может быть и 5,10,15,20 минут
до какого-то момента прибавлять
PHP
1
$date_start->add(new DateInterval('PT'.$interval.'M'));
, пока она не станет меньше или равной date_end.
Условие пока застопорился как применять

Добавлено через 22 минуты
В общем, как-то так:
PHP
1
2
3
4
5
$i = 0;
            for ($date_start = $date_start; $date_start <= $date_end; $date_start->add(new DateInterval('PT'.$interval.'M'))) {
                echo $i++; // для контроля счетчика
                debug($date_start->format('Y-m-d H:i:s'));
            }
работает в принципе.
не знаю, правильно ли логически
PHP
1
$date_start = $date_start
PHPStorm ругается "The left and the right parts of assignment are equal", мне тоже как-то кажется бред какой-то

Добавлено через 8 минут
а при
PHP
1
$date_start < $date_end
пишет "Expression result unused"

Добавлено через 6 минут
а если так,
PHP
1
2
3
4
5
while ($date_start <= $date_end) {
                // $date_start->add(new DateInterval('PT'.$interval.'M'));
                $date_start->add(new DateInterval('PT'.$interval.'M'));
                debug($date_start->format('Y-m-d H:i:s'));
            }
то смещает на разряд вверх, что не соответствует действительности введенных данных

Добавлено через 11 минут
короче забил и оставил
PHP
1
for ($date_start = $date_start; ....
, работает
0
24.08.2018, 23:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2018, 23:36
Помогаю со студенческими работами здесь

Сортировка в БД по типу DATETIME
mysql_query(&quot;SELECT ids, scils, podtema, num_mess, posled_mess, datazz, levelz FROM...

Преобразование DateTime php в Date JS
Есть какой-нибудь удобный способ преобразования экземпляра DateTime php в экземпляр класса Date в...

Отличие между date и DateTime
Здравствуйте. date — Форматирует вывод системной даты/времени DateTime - Представление даты и...

Datetime
Пытаюсь сделать так чтобы укзанная дата с помощью поля &quot;datetime&quot; записывалась в таблицу MySQl....

DateTime::diff
Здравствуйте. Кто-то может объяснить 2 последних вывода следующего кода? &lt;?php // date =...

Datetime + час
Люди как мне в datetime добавить 1 час? Самое главное чтобы всё осталось в нужном формате, я прост...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru