Автор Тема: Даты  (Прочитано 3938 раз)

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

Оффлайн DamonLSD

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 53
  • +0/-0
  • 0
    • Просмотр профиля
Даты
« : 16 Февраля 2002, 18:35:25 »
Здравствуйте!
Подскажите пожалуйста, с помощью чего можно реализовать следующее:
Нужно вывести даты в формате дд/мм/гггг с учетом запроса, например:
за текущую неделю: 11/02/2002 - 16/02/2002
за текущий месяц: 01/02/2002 - 16/02/2002

Заранее большое СПАСИБО!!!
:)
Good Luck,
   Damon LSD.

Оффлайн Demon

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 60
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.ntndis.com
Даты
« Ответ #1 : 16 Февраля 2002, 22:11:03 »
А какая структура хранения данных?

Оффлайн DamonLSD

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 53
  • +0/-0
  • 0
    • Просмотр профиля
Даты
« Ответ #2 : 17 Февраля 2002, 11:55:37 »
Данные хранятся в *.mdb , вытаскиваются через ODBC.
А даты хранятся в виде дд/мм/гггг (11/02/2002)
Good Luck,
   Damon LSD.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Даты
« Ответ #3 : 18 Февраля 2002, 16:14:31 »
Для работы с ODBC есть модуль Win32::ODBC.
Формируешь запрос и получаешь данные:

if (!($db = new Win32::ODBC($DSN)))
{  print "Error connecting to Database\\n";
   print "Error: ".Win32::ODBC::Error()."\\n";
   exit;
}

$sql="select * from $Table";
$db->Sql($sql);
while($db->FetchRow())
{  %data=$db->DataHash();
    foreach $bla (keys %data)
    {  print "$bla -> $data{$bla}\\n";
    }
}


А ф-циями localtime и sprintf можно форматировать результат.

Оффлайн DamonLSD

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 53
  • +0/-0
  • 0
    • Просмотр профиля
Даты
« Ответ #4 : 18 Февраля 2002, 16:33:03 »
Вопрос не про "Win32::ODBC", а про текущую неделю!!!
С текущим месяцем разобрался.
Good Luck,
   Damon LSD.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Даты
« Ответ #5 : 19 Февраля 2002, 18:05:37 »
Ф-ции localtime, gmtime 6-ым параметром (считать начиная с нуля) возвращают текущий день недели.
0 - воскресенье,
1 - понедельник и т.д.



use Time::Local;

$wday=(localtime)[6];
if ($wday==0)
{  $wday=6;
}
else
{  $wday--;
}

$curtime=timelocal((localtime)[0,1,2,3,4,5]);

$startWeek=$curtime-$wday*24*60*60;    
($stday,$stmonth,$styear)=
(localtime($startWeek))[3,4,5];  # первый день недели

$endWeek=$curtime+(6-$wday)*24*60*60;
($endday,$endmonth,$endyear)=
(localtime($endWeek))[3,4,5];   # последний день недели

Потом форматируешь результаты.
« Последнее редактирование: 19 Февраля 2002, 18:20:11 от Evgeny »

Оффлайн DamonLSD

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 53
  • +0/-0
  • 0
    • Просмотр профиля
Даты
« Ответ #6 : 20 Февраля 2002, 08:10:58 »
OK
Сейчас посматрю, что выходит :))
Good Luck,
   Damon LSD.

 

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