Avatar billede jnrmgs Juniormester
06. maj 2005 - 15:09 Der er 15 kommentarer og
1 løsning

Sidst opdateret?

Hej!

Jeg har en hjemmeside på http://www.john-nissen.dk/. Her har en PHP-side med en tabel, hvori der inkluderes 2 HTML-filer. Jeg vil gerne have at den viser hvilken dato siden sidst er opdateret.

Problemet er den bare viser dags dato i stedet.

Yderligere beskrivelse af problemet er på http://www.eksperten.dk/spm/608352

Håber nogen kan hjælpe med et script der viser hvordan de forskellige sider opdateret.

På forhånd tak!
Avatar billede jakobdo Ekspert
06. maj 2005 - 15:29 #1
Hvorfor kan du ikke bruge:

<?php
// outputs e.g.  somefile.txt was last modified: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
  echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>
Avatar billede jnrmgs Juniormester
06. maj 2005 - 15:57 #2
Nu har jeg sat scriptet ind, og det fungerer sådan set udemærket, men formatet synes jeg ikke helt om. Jeg vil gerne have det på dansk.

Scriptet er:

    <?php
    // outputs e.g.  somefile.txt was last modified: December 29 2002 22:16:23.

    $filename = 'links.htm';
    if (file_exists($filename)) {
          echo "Sidst opdateret: " . date ("d. F Y H:i:s.", filemtime($filename));
    }
    ?>

Jeg vil gerne have det stående sådan f.eks.: Sidst ændret: Fredag den 6. maj 2005, og uden klokkeslet.

Er det muligt at lave det som en include. Problemet er jo at man skriver en bestemt fil, så man er vel nødt til at lægge scriptet ind i hver PHP-side?
Avatar billede jakobdo Ekspert
06. maj 2005 - 16:47 #3
Du kunne f.eks:

<?php
    setlocale(LC_TIME, 'da_DK.ISO_8859-1');

    $filename = 'links.htm';
    if (file_exists($filename))
    {
        echo "Sidst opdateret: " . strftime("%d-%m-%Y %T", filemtime($filename));
    }
?>

Se flere formatterings muligheder her: http://dk.php.net/strftime
Avatar billede jnrmgs Juniormester
06. maj 2005 - 17:15 #4
Følgende script skriver dag og måned på engelsk ("Sidst opdateret: Friday den 06. May 2005"). Og hvordan ændrer man det, så der står "6" i stedet for "06"?

    <?php
        setlocale(LC_TIME, 'da_DK.ISO_8859-1');

        $filename = 'links.htm';
        if (file_exists($filename))
          {
            echo "Sidst opdateret: " . strftime("%A den %d. %B %Y %T", filemtime($filename));
        }
    ?>
Avatar billede dotcom1 Nybegynder
06. maj 2005 - 17:17 #5
<?php
/* Set locale to Danish */
setlocale(LC_ALL, 'da_DK');
$side= basename($_SERVER[PHP_SELF]);
if (file_exists($side)) {
    echo "Sidst redigeret den " . strftime("%e %B %Y", filemtime($side));
# echo "Sidst redigeret den: " . strftime("%e %B %Y"." <small>@</small> ". "%H:%M", filemtime($side));
}
?>
Avatar billede dotcom1 Nybegynder
06. maj 2005 - 17:18 #6
Den sidste viser vist datoen som du vil have den... :)
Avatar billede dotcom1 Nybegynder
06. maj 2005 - 17:22 #7
Og du kan nøjes med dette:

<?php
/* Set locale to Danish */
setlocale(LC_ALL, 'da_DK');
$side= basename($_SERVER[PHP_SELF]);
if (file_exists($side)) {
    echo "Sidst opdateret: " . strftime("%e %B %Y", filemtime($side));
}
?>
Avatar billede jnrmgs Juniormester
06. maj 2005 - 17:26 #8
<?php
    /* Set locale to Danish */
    setlocale(LC_ALL, 'da_DK');
    $side= basename($_SERVER[PHP_SELF]);
    if (file_exists($side)) {
        echo "Sidst opdateret: " . strftime("%e %B %Y", filemtime($side));
    }
    ?>

giver følgende på siden:

Notice: Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in D:\Johns Jernbaneside 2\jernbaneside\Links\links.php on line 25
Sidst opdateret: May 2005
Avatar billede jakobdo Ekspert
06. maj 2005 - 17:26 #9
Sådan, så viser den dato som du ønsker:

<?php
/* Set locale to Danish */
setlocale(LC_ALL, 'da_DK');
$filename = 'links.htm';;
if (file_exists($filename))
{
    //Fredag den 6. maj 2005
    echo "Sidst opdateret: " . strftime("%A den %e. %B %Y", filemtime($filename));
}
?>
Avatar billede jakobdo Ekspert
06. maj 2005 - 17:27 #10
$side= basename($_SERVER[PHP_SELF]); skal evt rettes tiL:  $side= basename($_SERVER['PHP_SELF']);
Avatar billede jnrmgs Juniormester
06. maj 2005 - 17:35 #11
<?php
    /* Set locale to Danish */
    setlocale(LC_ALL, 'da_DK');
    $filename = 'links.htm';;
    if (file_exists($filename))
    {
        //Fredag den 6. maj 2005
        echo "Sidst opdateret: " . strftime("%A den %e. %B %Y", filemtime($filename));
    }
    ?>

giver følgende: Sidst opdateret: Friday den 6. May 2005

Jeg forstår ikke hvorfor den ikke vil lave det til dansk? Har det noget med serveren at gøre?
Avatar billede jakobdo Ekspert
06. maj 2005 - 17:36 #12
Muligvis!
Avatar billede jnrmgs Juniormester
06. maj 2005 - 17:39 #13
Hvis jeg kører den lokalt, altså via IIS, skriver den "Sidst opdateret: Friday den . May 2005", altså uden dato.
Avatar billede jakobdo Ekspert
06. maj 2005 - 17:45 #14
Test lige dette script:

<?php
/* Set locale to Danish */
setlocale(LC_ALL, 'da_DK.ISO_8859-1');
$filename = basename($_SERVER['PHP_SELF']);
if (file_exists($filename))
{
    //Fredag den 6. maj 2005
    echo "Sidst opdateret: " . strftime("%A den %e. %B %Y", filemtime($filename));
}
?>
Avatar billede jnrmgs Juniormester
06. maj 2005 - 17:49 #15
Genialt!

Det virker fint når jeg lægger den op på serveren, hvor den skriver: "Sidst opdateret: Fredag den 6. Maj 2005". Lokalt skriver den dog "Sidst opdateret: Friday den . May 2005", men det er sådan set ligemeget.

Hvis du laver et svar kan du få dine 60 point.
Avatar billede jakobdo Ekspert
06. maj 2005 - 17:50 #16
Svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester