Unix время -
serpip - 24.05.2012
В каком часовом поясе выводится unix время в функции gettime(); ?
PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime()));
если сделать такой код с использованием инклуда mxDate, то у меня время показывает +3ч к настоящему времени
Re: Unix время -
Stepashka - 24.05.2012
Время сервера.
Re: Unix время -
TriskeliS - 24.05.2012
Quote:
Originally Posted by serpip
В каком часовом поясе выводится unix время в функции gettime(); ?
|
Вообще Unix время по GMT, но видимо на сервере оно с учетом часового пояса и твой нкллуд прибавляет к нему еще раз часовой пояс.
Как вариант можно попробовать:
PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime()-10800));
10800 - 3 часа в секундах.
Re: Unix время -
Stepashka - 25.05.2012
Quote:
Originally Posted by TriskeliS
Вообще Unix время по GMT, но видимо на сервере оно с учетом часового пояса
|
Unix не связан с GMT и не имеет понятия о том что это, оно связано только с настройками сервера.
В данном случае сервер находится в часовом поясе +3 и настроен соответственно.
Re: Unix время -
serpip - 25.05.2012
дело в том что если сделать вот так
PHP код:
new Hour, Minute, Second;
gettime(Hour, Minute, Second);
printf("%02d:%02d:%02d", Hour, Minute, Second);
то покажет нормальное время а если
PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime()));
то покажет время +3ч
Re: Unix время -
Stepashka - 25.05.2012
Quote:
Originally Posted by serpip
дело в том что если сделать вот так
PHP код:
new Hour, Minute, Second;
gettime(Hour, Minute, Second);
printf("%02d:%02d:%02d", Hour, Minute, Second);
то покажет нормальное время а если
PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime()));
то покажет время +3ч
|
Значит ошибка в
date().
А зачем тебе эта функция когда ты можешь просто получить текущую дату
getdate?
Re: Unix время -
serpip - 25.05.2012
что значит ошибка в date()? скачай инклуд
тут и посмотри сам. функция нужна для сохранения даты и времени в файл для системы бана по времени
Re: Unix время -
Stepashka - 25.05.2012
Quote:
Originally Posted by serpip
что значит ошибка в date()? скачай инклуд тут и посмотри сам. функция нужна для сохранения даты и времени в файл для системы бана по времени
|
А почему не использовать просто
unixtime, c integer числом проще работать нежели с форматированной строкой?
Re: Unix время -
dimonml - 25.05.2012
Чтобы был предметный разговор: приведи что вернут эти строчки:
PHP код:
new Hour, Minute, Second;
new posix = gettime(Hour, Minute, Second);
printf("%02d:%02d:%02d posix=%d", Hour, Minute, Second, posix);
Re: Unix время -
serpip - 25.05.2012
Код:
PHP код:
new Hour, Minute, Second;
new posix = gettime(Hour, Minute, Second);
printf("%02d:%02d:%02d posix=%d. Unix time: %s", Hour, Minute, Second, posix, date("%dd.%mm.%yyyy в %hh:%ii:%ss",posix));
Результат:
PHP код:
11:15:25 posix=1337933725. Unix time: 25.05.2012 в 14:15:25
Re: Unix время -
dimonml - 25.05.2012
Вполне ожидаемый и правильный результат (со стороны сампа). Функции date в сампе нет, так что за нее ничего не скажу:
Код:
$ date --rfc-2822 --utc --date=@1337933725
Fri, 25 May 2012 08:15:25 +0000
(учитывая озвученные тобой +3 часа в твоем часовом поясе) все сходиться
gettime возвращает unix time (posix time, Unix Epoch и др): это количество секунд прошедших с 1 января 1970 года по Гринвичу, без учета високосных секунд.
Если ты в gettime() передаешь еще аргументы, то они заполняются локальным временем.
апд: мне кажется для озвученных целей реально число возвращаемое gettime удобнее, чем форматированная строка.
Re: Unix время -
serpip - 25.05.2012
да ладно, просто от значения отнять 3 часа и все, делов то). Значит там время в 0 часовом поясе