Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Не получили
письмо с кодом активации
?
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Начало
Помощь
Поиск
Календарь
Вход
Регистрация
Forum Webscript.Ru
»
Программирование
»
Perl
»
дата. Разница в часовых поясах
« предыдущая тема
следующая тема »
Печать
Страницы: [
1
]
2
Вниз
Автор
Тема: дата. Разница в часовых поясах (Прочитано 7239 раз)
0 Пользователей и 1 Гость просматривают эту тему.
apost
Заглянувший
Новичок
Сообщений: 4
+0/-0
0
дата. Разница в часовых поясах
«
:
27 Февраля 2003, 19:41:19 »
Hi
Для получения даты на perl-е я пишу:
$date_command = "/bin/date"; #команда даты
$date = `$date_command +"%d.%m.%Y, %H:%M."`; chop($date);
Вообщем вроде все хорошо, только хостинг провайдер в другом часовом поясе и системная дата ОТЛИЧАЕТСЯ на несколько часов. Помогите чайнику, как получить дату со смещением на несколько часов.
Записан
NeoNox
Координатор
Глобальный модератор
Ветеран
Сообщений: 3012
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #1 :
27 Февраля 2003, 20:25:39 »
Оригинальный способ получения даты.
Но легче всеже использовать localtime для этих вещей.
А здесь тебе нужно распарсить полученное значение, пробавить (или отнять) часы.
В таком случае регэксп и вперед.
Ну и под виндой, сам понимаешь...
Записан
The documentations is your friend
Croaker
Модератор
Глобальный модератор
Ветеран
Сообщений: 927
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #2 :
28 Февраля 2003, 12:47:10 »
$dif
= +
3
;
#разница в часах
(
$sec
,
$min
,
$hour
,
$mday
,
$mon
,
$year
,
$wday
,
$yday
,
$isdst
) =
localtime
(
time
);
print (
$hour
+
$dif
),
":"
.
$min
.
":"
.
$sec
.
":"
....
где-то так
Записан
Не все коту матрица.
apost
Заглянувший
Новичок
Сообщений: 4
+0/-0
0
hi Croaker
«
Ответ #3 :
28 Февраля 2003, 13:02:54 »
Интересный вариант. А что будет в 23-00 23+3=26 часов
Записан
Croaker
Модератор
Глобальный модератор
Ветеран
Сообщений: 927
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #4 :
28 Февраля 2003, 13:25:38 »
я тоже об этом подумал. лечится просто.
if((
$hour
+
$dif
) >
23
) {
$H
=
$hour
+
$dif
-
24
;
$D
++;
}
.. и тут меня озарило, что так придется страдать и с днями и месяцами. Довольно большая ф-ция получится. хм..
Записан
Не все коту матрица.
NeoNox
Координатор
Глобальный модератор
Ветеран
Сообщений: 3012
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #5 :
28 Февраля 2003, 13:37:03 »
Не нужно ничего придумывать.
Все уже придумано до нас.
$smeschenie = 60*60*2; #Плюс два часа.
$time=time + $smeschenie;
$time=localtime($time);
Записан
The documentations is your friend
Croaker
Модератор
Глобальный модератор
Ветеран
Сообщений: 927
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #6 :
28 Февраля 2003, 13:54:37 »
Записан
Не все коту матрица.
apost
Заглянувший
Новичок
Сообщений: 4
+0/-0
0
спасибо огромное, особенно NeoNox
«
Ответ #7 :
28 Февраля 2003, 18:44:01 »
$smeschenie = 60*60*2; #Плюс два часа.
$time=time + $smeschenie;
$time=localtime($time);
_______
Просто супер
Единственный минус - в неудобном формате выдает дату.
Fri Feb 28 18:34:23 2003
Или я совсем чайник, но не получается у меня дату в нормальном виде получить:
число:месяц:год часы:минуты
может черкнете, а то совсем замучался.....
Записан
NeoNox
Координатор
Глобальный модератор
Ветеран
Сообщений: 3012
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #8 :
28 Февраля 2003, 18:58:42 »
$smeschenie = 60*60*2; #Плюс два часа.
$time=time + $smeschenie;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time);
$year += 1900;
$mon++;
print "$mday:$mon:$year $hour:$min";
Записан
The documentations is your friend
apost
Заглянувший
Новичок
Сообщений: 4
+0/-0
0
:)
«
Ответ #9 :
28 Февраля 2003, 21:23:50 »
Записан
Chs
Perl программер
Глобальный модератор
Ветеран
Сообщений: 1108
+0/-0
2
дата. Разница в часовых поясах
«
Ответ #10 :
28 Февраля 2003, 22:18:42 »
Задачка:
Как явно не задавать разницу в часах, а определять ее?
(до GMT, например, а московское считать от него)
(решение есть)
Записан
2B OR NOT 2B = FF
NeoNox
Координатор
Глобальный модератор
Ветеран
Сообщений: 3012
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #11 :
01 Марта 2003, 00:09:11 »
Chs
Есть модуль. Подсказать название?
Записан
The documentations is your friend
Chs
Perl программер
Глобальный модератор
Ветеран
Сообщений: 1108
+0/-0
2
дата. Разница в часовых поясах
«
Ответ #12 :
01 Марта 2003, 12:57:17 »
Цитировать
Есть модуль. Подсказать название?
Не-а, tnx.
Я в свое время смотрел - в итоге сделал без модуля.
За пару операторов.
Тут скорее важна идея - пусть народ подумает.
Записан
2B OR NOT 2B = FF
КшЫуфксрук
Завсегдатай
Пользователь
Сообщений: 99
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #13 :
01 Марта 2003, 18:39:58 »
> Как явно не задавать разницу в часах, а определять ее?
Какую разницу нужно определить? В любом случае нужно задать разницу. Можно задать разницу между GMT и желаемым временем (тогда при переносе сервера не придется ничего менять), но все равно ее нужно ЗАДАТЬ. Определить можно только сравнивая с клиентским временем, но это еще более кривое решение, мало ли какое время у клиента стоит.
Записан
Е. Перлов
Заглянувший
Новичок
Сообщений: 21
+0/-0
0
дата. Разница в часовых поясах
«
Ответ #14 :
09 Марта 2003, 19:34:05 »
localtime(time)[2] - gmtime(time)[2]
Но, насколько я понимаю, это даст разницу между часовым поясом _сервера_ (а не клиента) и Гринвичем. Даже если часы на сервере идут неправильно.
А вот ещё одна задачка: определите часовой пояс клиента. (Решения у меня нет, но оно мне очень нужно
Записан
Печать
Страницы: [
1
]
2
Вверх
« предыдущая тема
следующая тема »
Forum Webscript.Ru
»
Программирование
»
Perl
»
дата. Разница в часовых поясах
Sitemap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28