Эффективное отображение strtotime () в запросе MySQL / PHP - PullRequest
1 голос
/ 16 июля 2011

Это мой запрос PHP / MySQL, как упоминалось в Отображение ссылок в PHP / MySQL? :

http://pastebin.com/5Td9Bybn

Я признаю, я 'мы забыли, как эффективно использовать функцию strtotime (), поскольку я хочу показать время моего показа в следующем формате:

06: 00

10: 00

(безthe: 00 в конце, например, 10:00:00)

Код теперь отображает эту ошибку:

Ошибка разбора: синтаксическая ошибка, неожиданный T_ECHO в C: \ www \ vhosts \ localradio\ schedsun.php в строке 11

Я исправил ошибки в предыдущем вопросе, как я могу адаптировать это, если я хочу показать время как:

6: 00 am

06: 00

6 утра

(только для тестирования саке, в пределах параметров кода на Pastebin).

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

Наконец, мне нужна переменная или нет - или $ result_ar не нужен?

Спасибо за тебяпрошу помощи по последнему вопросу!

Ответы [ 4 ]

3 голосов
/ 16 июля 2011

Функция PHP strtotime () имеет следующее использование:

int strtotime ( string $time [, int $now ] )

Это означает, что вы передаете строковое значение для времени и, необязательно, значение для текущего времени, которое является меткой времени UNIX,Возвращаемым значением является целое число, которое является отметкой времени UNIX.

Примером такого использования является следующий, где дата, переданная в strtotime (), может быть датой из запроса к базе данных или аналогичной:

$ts = strtotime('2007-12-21');

В переменной $ ts будет возвращено значение 1198148400, которое является меткой времени UNIX для даты 21 декабря 2007 года. Это можно подтвердить с помощью функции date (), например:

echo date('Y-m-d', 1198148400);
// echos 2007-12-21

strtotime () может анализировать самые разные строки и преобразовывать их в соответствующую временную метку, используя фактические даты, а также такие строки, как «следующая неделя», «следующий вторник», «последний четверг», «2 недели назад»" и так далее.Вот несколько примеров:

$ts = strtotime('21 december 2007');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';

Это отобразит следующее:

1198148400 2007-12-21

Если сегодня 21 декабря,тогда следующее:

$ts = strtotime('next week');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';

$ts = strtotime('next tuesday');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';

$ts = strtotime('last thursday');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';

$ts = strtotime('2 weeks ago');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';

$ts = strtotime('+ 1 month');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';

отобразит следующее:

1199006542
2007-12-30
1198494000
2007-12-25
1198062000
2007-12-20
1197192142
2007-12-09
1201080142
2008-01-23
3 голосов
/ 16 июля 2011

Вы можете сделать это непосредственно в MySQL , что избавит вас от накладных расходов при разборе strtotime () и гарантирует получение правильных результатов, поскольку strtotime может время от времени угадывать неправильные.

SELECT DATE_FORMAT(yourdatefield, '%h:%i') ...
1 голос
/ 16 июля 2011

Вариант 1

strtotime() даст вам метку времени, вы используете функцию date() для форматирования отображения времени и / или даты.

06: 00

<?php echo date('H:i', strtotime($result_ar['airtime'])); ?>

6: 00 am

<?php echo date('g:ia', strtotime($result_ar['airtime'])); ?>

1020 * 6 утра *

<?php echo date('ga', strtotime($result_ar['airtime'])); ?>

Читайте о date() и его форматировании на php.net .


Вариант 2

Сделайте это в MySQL, как подсказывает @Marc B.

Изменить эту строку

$result = mysql_query("SELECT * FROM presenters1;", $connection) or die("error querying database");

до

$result = mysql_query("SELECT *, TIME_FORMAT(airtime, '%h:%i') `airtime` FROM presenters1;", $connection) or die("error querying database");

Затем измените эту строку:

<div class="time"><? php echo strotime ('H') $result_ar['airtime']; ?></div>

до

<div class="time"><?php echo $result_ar['airtime']; ?></div>
0 голосов
/ 16 июля 2011

У вас есть пробел между <? и словом php.Я думаю, что это вызывает неожиданную ошибку эха.Вы должны иметь <?php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...