Forum Webscript.Ru

Программирование => Perl => Тема начата: D.O. от 23 Февраля 2005, 20:23:55

Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: D.O. от 23 Февраля 2005, 20:23:55
Как удобнее узнать, что одна дата раньше/позже другой?
Есть какой-нибудь модуль из стандартной поставки Perl или сторонний?
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: 2NetFly от 23 Февраля 2005, 20:32:56
Зависит от того, в каком формате дата.
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: ondr от 23 Февраля 2005, 20:35:19
Удобно работать с датами в стандартном unix\'овском формате, т.е. в секундах от 1 Jan 1970 ...

Для наиболее часто используемых преобразований:
perldoc -f gmtime
perldoc -f localtime
perldoc -f time
perldoc Time::Local

и для форматированного вывода:
perldoc POSIX в частности setlocale() и strftime()
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: D.O. от 23 Февраля 2005, 20:35:35
В любом! Сконвертировать - не проблема.
Какие модули есть для сравнения дат?
Чтобы можно было пользоваться операциями типа
if($date1->is_before($date2)) { ... }
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: D.O. от 23 Февраля 2005, 20:37:26
Насчёт любого формата я погорячился.
Формат - как в логах Postfix:
Apr 26 12:22:03
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: NeoNox от 23 Февраля 2005, 20:39:38
года там нет?
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: D.O. от 23 Февраля 2005, 20:42:30
Года нет. Нет смысла, - каждый день (или другой период) "logfile turned over".
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: NeoNox от 23 Февраля 2005, 21:19:20
perldoc -q date
How can I compare two dates and find the difference?
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: 2NetFly от 23 Февраля 2005, 21:35:07
Цитировать
D.O.:
Формат - как в логах Postfix: Apr 26 12:22:03

Проще всего перевести (используя Time::Local) в timestamp и просто сравнить.
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: D.O. от 23 Февраля 2005, 21:41:44
Цитировать
2NetFly:
Проще всего перевести (используя Time::Local) в timestamp и просто сравнить.


В доке не совсем понятно описано.
У тебя случайно нет примера?
Название: как удобнее узнать, что одна дата раньше/позже другой?
Отправлено: commander от 24 Февраля 2005, 09:23:16
D.O.
в доке есть шикарный пример:
$time = timelocal($sec,$min,$hour,$mday,$mon,$year);