[ urke @ 07.01.2003. 17:33 ] @
Elem, imam u promenljivoj $moj_datum string koji predstavlja datum u formatu dd-mm-yyyy:

$moj_datum = "15-10-1997";

Kako da u promenljivu $naziv_dana spakujem naziv dana u nedelji za dati datum?

Citao sam neka uputstva, pokusavao nesto sa gmdate i mkdate ali ne dobijam ispravne nazive nego nesto istumbano, pa se od ekih 7 datuma samo za recimo jedan pogodi stvaran naziv dana u nedelji.
[ Dragoslav Krunić @ 07.01.2003. 19:05 ] @
Idi na http://search.cpan.org i portaži modul Date::Calc (mada nisam siguran da je ovaj; proveri).
Ukoliko za taj datum koji držiš u toj promenljivoj takođe imaš i odgovarajuću vrednost izraženu u broju sekundi od 1. Januara 1970, onda kucaj:

Code:
$ perldoc -f localtime


P.S.

Ovo je ujedno i moja hiljadita poruka
[ bzero @ 08.01.2003. 12:31 ] @
Treba da uradis ono sto je rekao Zombie: napravis Unix timestamp od tvog datuma i onda vidis koji je to dan u nedelji, s tim sto u Perlu to moze otprilike ovako:

use Time::Local;

$moj_datum = "15-10-1997";

@d = split /\-/, $moj_datum; # izdvoj delove datuma
$time = timelocal(0, 0, 0, $d[0], $d[1] - 1, $d[2]); # napravi timestamp
$dan = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[(localtime($time))[6]]; # pronadji dan

print $dan;


[ -zombie- @ 08.01.2003. 13:45 ] @
[evo mog pomenutog posta, iz druge, istovetne teme]

kome bi ti to da "dash", i od koga da "dobijes" ;)

a jednom u 7 je bash slucajno verovatnoca ;)

elem, ne znam perl, ali znam da ima dosta slicnosti sa php-om, pa evo ti ga postupno objasnjenje.

prvo treba da izdvojish elemente iz tog datuma. za to ti treba split po regularnom izrazu. ne znam tacnu sintaxu, ali u php-u je ovakva:

$elementi=preg_split("/-/", $moj_datum);

onda treba da napravish unix timestamp od toga. za to se koristi mktime()

$timestamp=mktime(0, 0, 0, $elementi[1], $elementi[0], $elementi[2]);

(opet nisam siguran za sintaxu, ali je tako nekako. prve tri nule su sat, minut i sekunda, a druga tri parametra su namerno u tom redosledu: mesec, pa dan, pa godina).

i na kraju treba josh samo da napravish string od toga. ako hoces na engleskom onda probaj:

$dan=date("l", $timestamp); // ovo je malo L pod navodnicima

ako oces na srpskom, onda ti treba redni broj dana u nedelji:

$rbr=date("w", $timestamp);

i posle od toga samo prebaci u string. opet ne znam kako bi to bilo u perlu, ali evo ga u php-u:

$dani=array('nedelja', 'ponedeljak', 'utorak', 'sreda', ...);

$dan=$dani[$rbr];


zapamti da je $rbr=0 za nedelju, 1 za ponedeljak, etc..