Unix время
#1

В каком часовом поясе выводится unix время в функции gettime(); ?

PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime())); 
если сделать такой код с использованием инклуда mxDate, то у меня время показывает +3ч к настоящему времени
Reply
#2

Время сервера.
Reply
#3

Quote:
Originally Posted by serpip
Посмотреть сообщение
В каком часовом поясе выводится unix время в функции gettime(); ?
Вообще Unix время по GMT, но видимо на сервере оно с учетом часового пояса и твой нкллуд прибавляет к нему еще раз часовой пояс.
Как вариант можно попробовать:
PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime()-10800)); 
10800 - 3 часа в секундах.
Reply
#4

Quote:
Originally Posted by TriskeliS
Посмотреть сообщение
Вообще Unix время по GMT, но видимо на сервере оно с учетом часового пояса
Unix не связан с GMT и не имеет понятия о том что это, оно связано только с настройками сервера.
В данном случае сервер находится в часовом поясе +3 и настроен соответственно.
Reply
#5

дело в том что если сделать вот так
PHP код:
new HourMinuteSecond;
gettime(HourMinuteSecond);
printf("%02d:%02d:%02d"HourMinuteSecond); 
то покажет нормальное время а если
PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime())); 
то покажет время +3ч
Reply
#6

Quote:
Originally Posted by serpip
Посмотреть сообщение
дело в том что если сделать вот так
PHP код:
new HourMinuteSecond;
gettime(HourMinuteSecond);
printf("%02d:%02d:%02d"HourMinuteSecond); 
то покажет нормальное время а если
PHP код:
printf("дата %s",date("%dd.%mm.%yyyy в %hh:%ii:%ss",gettime())); 
то покажет время +3ч
Значит ошибка в date().
А зачем тебе эта функция когда ты можешь просто получить текущую дату getdate?
Reply
#7

что значит ошибка в date()? скачай инклуд тут и посмотри сам. функция нужна для сохранения даты и времени в файл для системы бана по времени
Reply
#8

Quote:
Originally Posted by serpip
Посмотреть сообщение
что значит ошибка в date()? скачай инклуд тут и посмотри сам. функция нужна для сохранения даты и времени в файл для системы бана по времени
А почему не использовать просто unixtime, c integer числом проще работать нежели с форматированной строкой?
Reply
#9

Чтобы был предметный разговор: приведи что вернут эти строчки:
PHP код:
new HourMinuteSecond;
new 
posix gettime(HourMinuteSecond);
printf("%02d:%02d:%02d posix=%d"HourMinuteSecondposix); 
Reply
#10

Код:
PHP код:
    new HourMinuteSecond;
    new 
posix gettime(HourMinuteSecond);
    
printf("%02d:%02d:%02d posix=%d. Unix time: %s"HourMinuteSecondposixdate("%dd.%mm.%yyyy в %hh:%ii:%ss",posix)); 
Результат:
PHP код:
11:15:25 posix=1337933725. Unix time25.05.2012 в 14:15:25 
Reply
#11

Вполне ожидаемый и правильный результат (со стороны сампа). Функции 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 удобнее, чем форматированная строка.
Reply
#12

да ладно, просто от значения отнять 3 часа и все, делов то). Значит там время в 0 часовом поясе
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)