Автор Тема: как удобнее узнать, что одна дата раньше/позже другой?  (Прочитано 4630 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн D.O.

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 81
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.liveinternet.ru/users/info101
Как удобнее узнать, что одна дата раньше/позже другой?
Есть какой-нибудь модуль из стандартной поставки Perl или сторонний?
Доска объявлений

Оффлайн 2NetFly

  • Модератор
  • Глобальный модератор
  • Постоялец
  • *****
  • Сообщений: 144
  • +0/-0
  • 0
    • Просмотр профиля
    • http://feotast.net
Зависит от того, в каком формате дата.
There Is More Than One Way To Do It (c)

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Удобно работать с датами в стандартном unix\'овском формате, т.е. в секундах от 1 Jan 1970 ...

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

и для форматированного вывода:
perldoc POSIX в частности setlocale() и strftime()
0 OK, 0:1

Оффлайн D.O.

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 81
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.liveinternet.ru/users/info101
В любом! Сконвертировать - не проблема.
Какие модули есть для сравнения дат?
Чтобы можно было пользоваться операциями типа
if($date1->is_before($date2)) { ... }
Доска объявлений

Оффлайн D.O.

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 81
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.liveinternet.ru/users/info101
Насчёт любого формата я погорячился.
Формат - как в логах Postfix:
Apr 26 12:22:03
Доска объявлений

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
года там нет?
The documentations is your friend

Оффлайн D.O.

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 81
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.liveinternet.ru/users/info101
Года нет. Нет смысла, - каждый день (или другой период) "logfile turned over".
Доска объявлений

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
perldoc -q date
How can I compare two dates and find the difference?
The documentations is your friend

Оффлайн 2NetFly

  • Модератор
  • Глобальный модератор
  • Постоялец
  • *****
  • Сообщений: 144
  • +0/-0
  • 0
    • Просмотр профиля
    • http://feotast.net
Цитировать
D.O.:
Формат - как в логах Postfix: Apr 26 12:22:03

Проще всего перевести (используя Time::Local) в timestamp и просто сравнить.
There Is More Than One Way To Do It (c)

Оффлайн D.O.

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 81
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.liveinternet.ru/users/info101
Цитировать
2NetFly:
Проще всего перевести (используя Time::Local) в timestamp и просто сравнить.


В доке не совсем понятно описано.
У тебя случайно нет примера?
Доска объявлений

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
D.O.
в доке есть шикарный пример:
$time = timelocal($sec,$min,$hour,$mday,$mon,$year);
And no religion too...

 

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