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?

Likes:

