_  _   ,_
/^\/^\-/ @D
~(________/ PERL.LT
|L |L
L L
Straipsniai  Funkcijos 
Funkcijos/localtime - paverčia UNIX laiką į įrašą ar string'ą, naudojant vietinį laiką
  • localtime EXPR

    Konvertuoja laiką kaip kad gražinta time funkcijos į 8 elementų sąrašą su laiku, lokalizuotu standartinei Greenwich laiko zonai. Dažniausia naudojamas taip:

        #  0    1    2     3     4    5     6     7
        ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) =
    					    localtime(time);

    Visi sąrašo elementai yra skaitiniai ir ateina tiesiai iš C `struct tm'. $sec, $min, ir $hour yra nurodyto laiko sekundės, minutės ir valandos. $mday yra mėnesio diena, o $mon yra pats mėnesis, įvardijamas 0..11 diapazone, kur 0 yra sausis, o 11 - gruodis. $year yra metai pradedant 1900. T.y. $year yra 123 2023 metais. $wday yra savaitės diena, kur 0 nurodo sekmadienį, o 3 - trečiadienį. $yday yra metų diena, 0..364 diapazone (arba 0..365 keliamuosiuose metuose.)

    Įsidėmėkite, kad $year elementas nėra tiesiog paskutiniai du metų skaičiai. Jei taip manysite, darysite programas, su 2000 metų problema - o to tikrai nesinorėtų ar ne?

    Teisingas būdas gauti pilnus 4 skaitmenų metus yra tiesiog:

    	$year += 1900;

    O gauti paskutiniuosius du metų skaitmenis, (t.y. '01' 2001 metams) reikia:

    	$year = sprintf("%02d", $year % 100);

    Jei EXPR praleistas, localtime() naudoja dabartinį laiką (localtime(time)).

    Skaliariniame kontekste localtime() gražina ctime(3) reikšmę:

        $now_string = localtime;  # t.y., "Thu Oct 13 04:54:34 1994"

    Ši skaliarinė reikšmė nėra priklausoma nuo lokalizacijos, bet yra įdiegta Perl'e. Norint naudoti GMT vietoj vietinio laiko naudokite gmtime. Žr. taip pat Time::Local modulį (paversti sekundes, minutes, valandas, ... atgal į sveikają reikšmę, gražintą time()), ir POSIX modulio strftime(3) ir mktime(3) funkcijas.

    Gauti ką nors panašaus į lokalizuotas datos eilutes, nustatykite lokalios aplinkos kintamuosius atitinkamai (žr. perllocale) ir išmėginkite pavyzdį:

        use POSIX qw(strftime);
        $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;
        # or for GMT formatted appropriately for your locale:
        $now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime;

    Pažymėtina, kad %a ir %b , trumposios savaitės dienos ir metų mėnesio formos nebūtinai turi būti trijų simbolių.

algirdas@perl.lt 2005.04.11 - $dabar