Forum Webscript.Ru
		Программирование => Perl => Тема начата: D.O. от 23 Февраля 2005, 20:23:55
		
			
			- 
				Как удобнее узнать, что одна дата раньше/позже другой?
 Есть какой-нибудь модуль из стандартной поставки Perl или сторонний?
- 
				Зависит от того, в каком формате дата.
			
- 
				Удобно работать с датами в стандартном unix\'овском формате, т.е. в секундах от 1 Jan 1970 ...
 
 Для наиболее часто используемых преобразований:
 perldoc -f gmtime
 perldoc -f localtime
 perldoc -f time
 perldoc Time::Local
 
 и для форматированного вывода:
 perldoc POSIX в частности setlocale() и strftime()
- 
				В любом! Сконвертировать - не проблема.
 Какие модули есть для сравнения дат?
 Чтобы можно было пользоваться операциями типа
 if($date1->is_before($date2)) { ... }
- 
				Насчёт любого формата я погорячился.
 Формат - как в логах Postfix:
 Apr 26 12:22:03
- 
				года там нет?
			
- 
				Года нет. Нет смысла, - каждый день (или другой период) "logfile turned over".
			
- 
				perldoc -q date
 How can I compare two dates and find the difference?
- 
				D.O.:
 Формат - как в логах Postfix: Apr 26 12:22:03
 
 Проще всего перевести (используя Time::Local) в timestamp и просто сравнить.
- 
				2NetFly:
 Проще всего перевести (используя Time::Local) в timestamp и просто сравнить.
 
 
 В доке не совсем понятно описано.
 У тебя случайно нет примера?
- 
				D.O. 
 в доке есть шикарный пример:
 $time = timelocal($sec,$min,$hour,$mday,$mon,$year);