Показать полную графическую версию : 1126647953.331 - это дата и походу даже чилсо, или наоборот.
xamelion
14-09-2005, 06:29
1126647953.331 1000 192.168.55.100 TCP_MISS/000 0 GET http://auto.search.msn.com/response.asp? - NONE/- -
1126647953.878 15 192.168.55.100 TCP_HIT/200 2441 GET http://www.ya.ru/ - NONE/- text/html
1126647953.994 115 192.168.55.100 TCP_HIT/200 1597 GET http://img.yandex.ru/i/logo76x44.gif - NONE/- image/gif
1126647955.710 43 192.168.55.100 TCP_HIT/200 2651 GET http://img.yandex.ru/i/fp2_morda.js - NONE/- application/x-javascript
собственно САБЖ.
как из первой строки лога squid получить нормальную дату.. либо время в php.
-/-/-/-/-/-/-/-/
1. Timestamp
The time when the client socket is closed. The format is 'Unix time' (seconds since Jan 1, 1970) with millisecond resolution. This can be modified to visible format by 'cat access.log | perl -nwe 's/^(\d+)/localtime($1)/e; print';.
-/-/-/-/-/-/-/-/
http://squid.visolve.com/squid/squid24s1/glossary.htm#access.log
ну а как вот перевести эту так называюмую дату или число я незнаю... перерыл все форумы.. перерыл все поисковики.. на шеле скрипт нашел.. на шеле скрипт который загоняет в mysql уже готовые даты тоже нашел.. на перле нашел.. а php умеет ? обязательно должна быть какая нить функция....
P.S. Только цифры в первом ряду почему то всегда с точкой ????
перерыл все форумы.. перерыл все поисковики.
А почему не зашли в единственное нужное место: на php.net (http://php.rinet.ru/manual/en/ref.datetime.php)???
А для поиска - подсказка - :) Ключевые слова Unix Epoch
И тогда имеем работающую пару функций getdate() и date():
$d=getdate(1126647953.331);
echo date($d);
Или вытаскиваете нужные переменные полученного в результате getdate() массива:
$my_date=$d[mday]. ' '. $d[month]. ' '. $d[year]; // ну и так далее, мне дальше лень :)
echo $my_date;
xamelion
14-09-2005, 15:43
mar
Огромное спасибо, на php.net я был, и скорее всего видел эти команды.. но в примерах не нашел что бы из цифр в человеческий вид вытаскивалось все... и очень сильно меня засмущала точка.
еще раз спасибо.
да и похорошему я запутался вот в чем.
gmdate - форматирует GMT/CUT дату/время
gmmktime - получает UNIX timestamp для GMT-даты
gmstrftime - форматирует GMT/CUT дату/время в соответствии с локальными установками
time - возвращает текущий UNIX timestamp
JDMonthName - возвращает название месяца
JDToFrench - конвертирует Julian Day Count во French Republican Calendar
JDToGregorian - конвертирует Julian Day Count в Григорианскую дату
JDToJewish - конвертирует Julian Day Count в Еврейский календарь
JDToJulian - конвертирует Julian Day Count в дату Юлианского календаря
jdtounix - конвертирует Julian Day Count в UNIX timestamp
JewishToJD - конвертирует дату Еврейского календаря в Julian Day Count
JulianToJD - конвертирует дату Julian Calendar в Julian Day Count
unixtojd - конвертирует UNIX timestamp в Julian Day Count
cal_days_in_month - возвращает количество дней в месяце для данного года и календаря
cal_from_jd - конвертирует из Julian Day Count в поддерживаемый календарь и возвращает расширенную информацию
cal_info - возвращает информацию об определённом календаре
cal_to_jd - конвертирует из поддерживаемого календаря в Julian Day Count
easter_date - получает UNIX timestamp для полуночи Easter данного года
easter_days - получает количество дней после 21 марта до дня, на который выпадает Easter, для данного года
FrenchToJD - конвертирует дату из French Republican Calendar в Julian Day Count
GregorianToJD - конвертирует Григорианскую дату в Julian Day Count
JDDayOfWeek - возвращает день недели
JDMonthName - возвращает название месяца
Я кроме календаря который в виндах и который на стенки у меня дома висит и невидил отродясь...
Еще раз спасибо огромное за то что помогли...
не за что :)
Unix Epoch - время в секундах с 1 января 1970 года, то есть с начала "Эпохи" :) - это естественное понятие в unix, ну и соответственно, в логах запросто может встречаться. Просто, когда работаешь под unix - это очевидно, и, соответственно, шансов запутаться в функциях даты-времени меньше :).
xamelion
14-09-2005, 20:41
я еще кое что хотел бы спросить с вашего позваления... если это дата, то где тогда время ? или это и есть и дата и время... хотя логично.. если это в секундах то само собой должно быть там и время... тогда вопрос снимается.. попробую вытащить от туда хотя бы время.
еще раз спасибки.
это именно секунды от той самой начала эпохи. Вытаскивается все довольноипросто (в примере выше я просто не довела до конца). Подробности про массив, получаемый в результате работы функцииgetdate() (http://php.rinet.ru/manual/en/function.getdate.php):
<?php
$today = getdate();
print_r($today);
?>
The above example will output something similar to:
Array
(
[seconds] => 40
[minutes] => 58
[hours] => 21
[mday] => 17
[wday] => 2
[mon] => 6
[year] => 2003
[yday] => 167
[weekday] => Tuesday
[month] => June
[0] => 1055901520
)
В Вашем случае имеем: $logtime = getdate(1126647953.331);
$logseconds = $logtime[seconds];
$logminutes = $logtime[minutes];
/* и так далее - весь массив */
xamelion
15-09-2005, 22:16
Огромное спасибки.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.