Likes Likes:  0
Resultaten 1 tot 3 van de 3
Geen

Onderwerp: Tijd/datum (Perl)

  1. #1
    Tijd/datum (Perl)
    geregistreerd gebruiker
    1.072 Berichten
    Ingeschreven
    14/04/03

    Locatie
    Amsterdam

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    1 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 34213101
    Ondernemingsnummer: nvt

    Thread Starter

    Question Tijd/datum (Perl)

    Het volgende vind ik nogal een vreemd probleem. Dit script.....

    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";
    }
    ... geeft de volgende output ...

    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
    De bedoelig is uiteraard om van al die jaren 1 januari te pakken. Echter, het script maakt er een beetje een zooitje van.

    Overigens vond ik ook al zoiets vreemds terug in de apache logs. Mijn traffic-log format (voor apache2 met logio module):

    Code:
    LogFormat "%{%G-%m-%d %H:%M:%S}t %I %O" traffic
    Deze maakte overigens van alles dat 2005-01-01 of 2005-01-02 had moeten zijn 2004-01-01 resp 2004-01-02.

    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?

  2. #2
    Tijd/datum (Perl)
    Unregistered user
    400 Berichten
    Ingeschreven
    27/12/04

    Locatie
    Geertruidenberg

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    6 Berichten zijn liked


    Naam: Kees
    Bedrijf: Monshouwer InterNet Diensten
    URL: www.monshouwer.eu
    Registrar SIDN: ja
    KvK nummer: 18075928
    Ondernemingsnummer: nvt

    Heeft niets te maken met schrikkeljaren en zo....

    %G geeft het jaarnummer weer volgens het ISO week nummer schema. Als de datum zich in een week bevind die tot een ander jaar behoort, dan wordt dit jaar weergegeven. Vervang je %G door %Y dan is het probleem voorbij.

    Mvgr,

    Kees



  3. #3
    Tijd/datum (Perl)
    geregistreerd gebruiker
    1.072 Berichten
    Ingeschreven
    14/04/03

    Locatie
    Amsterdam

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    1 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 34213101
    Ondernemingsnummer: nvt

    Thread Starter
    Welja, na het nodige geploeter gevonden:

    In plaats van %G in strftime, die het 4-cijferige jaar weegeeft van de gegeven WEEK, heb ik nu %Y gebruikt, die gewoon het 4-cijferige jaar weergeeft van die exacte datum.

    Was de week dus in het vorige jaar reeds begonnen, dan zou die datum weerspiegelen.

    edit:mind, u had natuurlijk he-le-maal gelijk. U was me duidelijk voor, maar ik had uw reactie nog niet onder ogen gehad, helaas. Maar goed om te weten dat zich hier oplettende mensen ophouden :-)

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2021 Webhostingtalk.nl.
Web Statistics