PDA

Просмотр полной версии : помощь по CGI нужна


M.Dmitry
10.04.2002, 16:38
Есть такая конструкция:
---
$todaydate = localtime();
$todaydate =~ s/(\w\w\w) (\w\w\w) (\d+) (\d\d\:\d\d\:\d\d) (\d\d\d\d)/$2 $3 $5/ig;
---

По идее должна брать текушюю дату/время и преобразовывать в вид:
Apr 10 2002

Проблема в следующем: Если дата двузначная (с 10 по 31) всё нормально,
Если односимвольная (с 1 по 9) то $todaydate так и остается в виде:
Wed Apr 4 22:05:03 2002

Как победить? Категорически приветствуется книжка (в электрическом виде) касающаяся таких преобразований.

Спасибо.
ЗЫ. В перле полный чайник.

neomaster
22.04.2002, 21:18
может просто Java ? :)

есть такой скрипт ...

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var months=new Array(13);
months[1]="Января";
months[2]="Февраля";
months[3]="Марта";
months[4]="Апреля";
months[5]="Мая";
months[6]="Июня";
months[7]="Июля";
months[8]="Августа";
months[9]="Сентября";
months[10]="Октября";
months[11]="Ноября";
months[12]="Декабря";
var time=new Date();
var lmonth=months[time.getMonth() + 1];
var date=time.getDate();
var year=time.getYear();
if (year < 2000) // Y2K Fix, Isaac Powell
year = year + 1900; // http://onyx.idbsu.edu/~ipowell
document.write("" + date + " ");
document.write(lmonth + ", " + year + "");
// End -->
</SCRIPT>

вставь .... посмотри ...

Nace
22.04.2002, 22:53
@minut = ( '00','01','02','03','04','05','06','07','08', '09' );
@months = ('01','02','03','04','05','06', '07', '08', '09', '10', '11', '12');
@days = ('Voskres.', 'poned', 'vtorn', 'sreda', 'chetverg', 'patn', 'subbota');

($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
$year+=1900;
$data1="$mday/$months[$mon]/$year";
if ($min <10)
{
$min=@minut[$min];
}
$date="$hour:$min";

Stasik
23.04.2002, 23:40
или ещё способ

под линухом есть прога - /usr/bin/date

$date_command = "/usr/bin/date";
$date = `$date_command +"%b %d %Y"`; chop($date);


выдаст

Apr 23 2002


там ещё всевозможные форматы, инфа тут
http://unixhelp.ed.ac.uk/CGI/man-cgi?date