Miksi tämä koodi ei toimi? Nimenomaan nuo if -kohdat aiheuttavat ongelmia kun haluan lisätä nollan eteen jos kyseessä on yksinumeroinen luku.
($sek, $min, $tun, $pv, $kk, $vvvv, $loput) = localtime(time); $Vuosi = 2000; $vvvv = $vvvv - 100; $Vuosi = $Vuosi+$vvvv; $tun = $tun + 1; $kk += 1; if (Length($pv) == 1) {$pv = "0" . $pv;} if (Length($kk) == 1) {$kk = "0" . $kk;} if (Length($tun) == 1) {$tun = "0" . $tun;} if (Length($min) == 1) {$min = "0" . $min;} if (Length($sek) == 1) {$sek = "0" . $sek;} $paivays = "$pv.$kk.$Vuosi $tun:$min:$sek"; print LOG "Vierailuaika: $paivays\n";
Kokeile vaihtaa tarkistukseksi numeerinen tarkistus,
if ($pv <= 9)
jne.
Tämä on ehkä parempi ratkaisu jonka sain Murean kuhan raimolta:
use POSIX;
$omaaika = time + 3600;
$paivays = strftime("%d.%m.%y %H:%M:%S", localtime($omaaika));
Eli tiedoksi vaan jos joku muu painii joskus saman ongelman kanssa.
Jos vuosi halutaan neljällä numerolla niin muutos koodiin:
%y -> %Y
Aihe on jo aika vanha, joten et voi enää vastata siihen.