Tom: Datum?

Hi,

ich wollte fragen, wie man mit Perl das Datum angeben kann. Mit der Uhrzeit geht das ja (soweit ich weiß) mit
localtime(time)

Vielen Dank
Tom

  1. hi tom!

    probier mal das hier:

    &get_date;
    print "Content-type: text/html\n\n";
    print " $date ";

    sub get_date {
        @days   = ('Sunday','Monday','Tuesday','Wednesday',
                   'Thursday','Friday','Saturday');
        @months = ('January','February','March','April','May','June','July',
                     'August','September','October','November','December');

    ($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
        $time = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
        $year += 1900;  <-- bzw 2000 dann ab dem 1.1!
       $date = "$days[$wday], $months[$mon] $mday"
        $date = "$days[$wday], $months[$mon] $mday, $year";
    }

    pat

    1. Hi Pat,

      erstmal danke :-)
      Aber leider kann ich das Script nicht mehr aufrufen, nachdem ich das eingebaut habe. Ich konnte aber auch selbst keinen Fehler entdecken (ich kenn mich auch nicht ganz so gut aus).

      viele Grüße
      Tom

    2. ("%02d:%02d:%02d",$hour,$min,$sec);

      $year += 1900;  <-- bzw 2000 dann ab dem 1.1!

      Falsch auch im Jahr 2000 addiert man nur 1900 dazu! "perldoc -f localtime" sagt dazu:

      Also, C<$year> is the
      number of years since 1900, that is, C<$year> is C<123> in year 2023,
      and I<not> simply the last two digits of the year.

      cu,
      Peter

  2. Hallo Tom,

    ich wollte fragen, wie man mit Perl das Datum angeben kann. Mit der Uhrzeit geht das ja (soweit ich weiß) mit
    localtime(time)

    vielleicht hilft Dir folgendes weiter:
    aus perlfunc zu localtime:

    In scalar context, returns the ctime(3)
         value:

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

    This scalar value is not locale dependent, see
         perllocale, but instead a Perl builtin.
    [...]
    To get
         somewhat similar but locale dependent date
         strings, set up your locale environment
         variables appropriately (please see
         perllocale) and try for example:

    use POSIX qw(strftime);
             $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;

    Note that the %a and %b, the short forms of
         the day of the week and the month of the
         year, may not necessarily be three characters
         wide.

    Ciao,

    Bea