Het volgende vind ik nogal een vreemd probleem. Dit script.....
... geeft de volgende output ...Code:#!/usr/bin/perl use POSIX qw(strftime); use Time::Local; $month = 0; $day = 1; $mytime = timelocal(0, 0, 0, $day, $month, $year); for ($year = 1997; $year < 2007; $year++) { $mytime = timelocal(0, 0, 0, $day, $month, $year); print strftime("%G-%m-%d", localtime($mytime)),"\n"; }
De bedoelig is uiteraard om van al die jaren 1 januari te pakken. Echter, het script maakt er een beetje een zooitje van.Code:1997-01-01 1998-01-01 1998-01-01 1999-01-01 2001-01-01 2002-01-01 2003-01-01 2004-01-01 2004-01-01 2005-01-01
Overigens vond ik ook al zoiets vreemds terug in de apache logs. Mijn traffic-log format (voor apache2 met logio module):
Deze maakte overigens van alles dat 2005-01-01 of 2005-01-02 had moeten zijn 2004-01-01 resp 2004-01-02.Code:LogFormat "%{%G-%m-%d %H:%M:%S}t %I %O" traffic
Ergo:
Ik snap er even niet veel van. Het probleem lijkt zich met name voor te doen NA schrikkeljaren.....? Misschien moet ik niet met localtime werken maar met andere functies? Iemand richtlijnen?