|
|
|
| Для того чтобы определить последнее обновление каталога продукции приходится определять статус таблицы с товарами и выводить время с помощью ".$row["Update_time"].".Всё работает,но проблема в том что время выводится по международному стандарту.Каким образом можно его отформатировать после вывода средствами php? | |
|
|
|
|
|
|
|
для: psychomc
(17.09.2008 в 10:44)
| | Приведите примерчик, дело в том, что международных стандартов времени несколько - имеется в виду UNIXSTAMP или текстовый формат? | |
|
|
|
|
|
|
|
для: cheops
(17.09.2008 в 12:21)
| | Игорь, международный стандарт один. Это ISO 8601. Почему собственно MySQL его и применяет.
А вовсе не из большой любви к китайцам.
http://ru.wikipedia.org/wiki/ISO_8601
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=40874 | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2008 в 12:29)
| | Их не поймешь, сколько хошь стандартов могут напринимать. Де-факто в программировании стандарт UNIXSTAMP и MySQL его тоже позволяет использовать. | |
|
|
|
|
|
|
|
для: cheops
(17.09.2008 в 12:31)
| | Позволяет. Но на выходе он его отдает тоже в виде datetime. Единственный способ извлечь в виде unixtime - явным образом запросить функцией в операторе SELECT. Но из SHOW TABLE STATUS его не добыть. Во всяком случае я не представляю, как.
Да и в любом случае не текстовый он. | |
|
|
|
|
|
|
|
для: psychomc
(17.09.2008 в 10:44)
| | C помощью ".$row["Update_time"]." Вы можете получить только синтаксическую ошибку.
Переделать представление времени можно массой способов.
Один только разбор можно устроить любым из - strtotime, scanf, explode и регулярные выражения.
<?php
$s = '2008-07-18 14:33:38';
list($y,$m,$d,$t) = sscanf($s, "%d-%d-%d %s");
printf('%02d.%02d.%04d %s', $d, $m, $y, $t);
echo "<hr>";
list($d, $t) = explode(' ', $s);
list($y, $m, $d) = explode('-', $d);
echo "$d.$m.$y $t";
echo "<hr>";
echo date('d.m.Y H:i:s', strtotime($s));
echo "<hr>";
preg_match('/^(\d+)-(\d+)-(\d+) (\d\d:\d\d:\d\d)$/', $s, $r);
echo "$r[3].$r[2].$r[1] $r[4]";
echo "<hr>";
echo preg_replace('/^(\d+)-(\d+)-(\d+) (\d\d:\d\d:\d\d)$/', '$3.$2.$1 $4', $s);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(17.09.2008 в 12:25)
| | синтаксической ошибки нету,вот так выглядит весь код:
<?php
$tbl_name="product";
$sql="SHOW TABLE STATUS";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result))
{
if($row["Name"]==$tbl_name)
{
echo "<p>Последнее обновление каталога продукции: ".$row["Update_time"]."</p>";
break;
};
};
?>
|
| |
|
|
|
|
|
|
|
для: psychomc
(17.09.2008 в 12:39)
| | Вот так синтаксической ошибки нету.
А когда Вы этот же код цитируете, обрывая пару текстовых констант на середине - получается чушь. | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2008 в 12:25)
| | спасибо за ответы | |
|
|
|
|
|
|
|
для: psychomc
(17.09.2008 в 12:40)
| | как вариант
в MySQL5 допускаются ещё обращения к базе information_schema
например можно выбрать непосредственно эту дату
, если например имя базы данных 'prod_base' и таблица 'products'
SELECT UPDATE_TIME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'prod_base' AND TABLE_NAME = 'products'
|
и здесь можно применить функции MySQL для работы с датой | |
|
|
|