/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
vise sidens sidste updtate med php - på da~
Fra : Gitte Nielsen


Dato : 01-06-05 11:43

Jeg ved ikke, om dette er den rigtige gruppe at poste mit
spørgsmål i, så giv mig endelig et pænt vink til den rigtige i så
fald.

Jeg er ved at "rense" min egen hjemmeside for diverse
javascripts, og har fået øjnene op for alle de fantastiske ting
PHP kan gøre for at lette arbejdet for en selv.

Jeg er meget ny inden for PHP, og sidder og kæmper med at få den
til at skrive sidens sidste opdatering på dansk, altså:

Senest opdateret: Onsdag, den 1. juni 2005 (som et eksempel)

Jeg ved simpelthen ikke hvor jeg skal begynde, da jeg pudsigt nok
kan få dagens dato skrevet på dansk, men altså ikke den sidste
opdateringsdato.

Jeg håber der er nogle som kan hjælpe.

Med venlig hilsen
Gitte Nielsen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jacob Atzen (01-06-2005)
Kommentar
Fra : Jacob Atzen


Dato : 01-06-05 12:46

On 2005-06-01, Gitte Nielsen <gitte_nielsenNOSPAM@newmail.dk> wrote:
> Jeg ved simpelthen ikke hvor jeg skal begynde, da jeg pudsigt nok
> kan få dagens dato skrevet på dansk, men altså ikke den sidste
> opdateringsdato.

Hvordan definerer du sidste opdateringsdato? Datoen, hvor den aktuelle
fil sidst blev rettet? Datoen, hvor du sidst opdaterede databasen?
Datoen, hvor en fil du includer sidst blev ændret?

Du bliver nødt til at definere problemet før du kan løse det

--
Med venlig hilsen
- Jacob Atzen

Gitte Nielsen (01-06-2005)
Kommentar
Fra : Gitte Nielsen


Dato : 01-06-05 15:06

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:

> Hvordan definerer du sidste opdateringsdato? Datoen, hvor den
>aktuelle
> fil sidst blev rettet? Datoen, hvor du sidst opdaterede databasen?
> Datoen, hvor en fil du includer sidst blev ændret?

Jeg var jo slet ikke klar over der var så meget at tage højde for

Min definition af datoen må være, hvornår den pågældende side på mit
site blev opdateret - ikke mere og ikke mindre . Og så skulle der
gerne komme til at stå ondsdag frem for Wednesday...

Jeg benytter mig endnu ikke af databaser i mit webarbejde, da jeg kun
har beskæftiget mig med hjemmesidekonstruktion i godt og vel et par
måneder. Så alt ting til sin tid.

/ Gitte


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Mikkel Z. Herold (01-06-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 01-06-05 13:49

On 01-06-2005 12:42 Gitte Nielsen wrote:
> Jeg er meget ny inden for PHP, og sidder og kæmper med at få den
> til at skrive sidens sidste opdatering på dansk, altså:

Som Jacob skriver, så afhænger det af, hvordan du definerer "siden".

Hvis du vil skrive ét sted, hvornår der sidst er sket en ændring på hele
sitet (altså på en hvilken som helst underside) kan du bruge:

<?php
setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
echo "Sitet er sidst opdateret $site_opdateret";
?>

Husk, at der skal være en punktum til sidst i serverstien! Hvis du vil
have datoen for en enkelt fil, skal du skifte punktummet ud med
filnavnet eller simpelthen skifte hele stien ud med $PHP_SELF.

Og igen, hvis du bruger en database til at generere indhold på nogle
sider, så bliver de sider ikke "fanget" af ovenstående...

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Dan Storm (01-06-2005)
Kommentar
Fra : Dan Storm


Dato : 01-06-05 14:07

Godt svar på fil opdatering! ;)

Og hvis hun så bruger mysql er dette en mulighed:

$days = array('søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag',
'fredag', 'lørdag');
$months = array(1=> 'Januar', 'Februar', 'Marts', 'April', 'Maj',
'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');

$sql_udtraek = "1-6-2005";
$tid = explode("-", $sql_udtraek);
$dag = date("w", mktime(0, 0, 0, $tid[1], $tid[0], $tid[2]));

echo 'Sidst redigeret '.$days[$dag].' d. '.$tid[0].'.
'.$months[$tid[1]].' '.$tid[2];


Selvom det kan gøres meget smartere er dette ret nemt!

Personligt benytter jeg mig af unix_timestamp() som mysql benytter sig af.
--
Dan Storm

http://err0r.dk
storm@err0r.dk

PGP Public key på http://err0r.dk/pubring.pkr

>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område

Dan Storm (01-06-2005)
Kommentar
Fra : Dan Storm


Dato : 01-06-05 15:32

Tilføjer lige til mig selv! ;)

Du kan benytte både mit og Mikkels svar således:


setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime("/dine/htdocs/.");
$opd = date('w-d-n-Y', $site_opdateret);

$days = array('søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag',
'fredag', 'lørdag');
$months = array(1=> 'Januar', 'Februar', 'Marts', 'April', 'Maj',
'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');

$tid = explode("-", $opd);

echo 'Sidst redigeret '.$days[$tid[0]].' d. '.$tid[1].'.
'.$months[$tid[2]].' '.$tid[3];


--
Dan Storm

http://err0r.dk
storm@err0r.dk

PGP Public key på http://err0r.dk/pubring.pkr

>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område

Jacob Atzen (01-06-2005)
Kommentar
Fra : Jacob Atzen


Dato : 01-06-05 15:39

On 2005-06-01, Dan Storm <shadyz@_REMOVETHIS_err0r.dk> wrote:
> setlocale (LC_ALL, 'da_DK');
> $site_opdateret = filemtime("/dine/htdocs/.");
> $opd = date('w-d-n-Y', $site_opdateret);
>
> $days = array('søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag',
> 'fredag', 'lørdag');
> $months = array(1=> 'Januar', 'Februar', 'Marts', 'April', 'Maj',
> 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');
>
> $tid = explode("-", $opd);
>
> echo 'Sidst redigeret '.$days[$tid[0]].' d. '.$tid[1].'.
> '.$months[$tid[2]].' '.$tid[3];

Siden du nu sætter et locale, hvorfor benytter du dig så ikke af det?

--
Med venlig hilsen
- Jacob Atzen

Dan Storm (01-06-2005)
Kommentar
Fra : Dan Storm


Dato : 01-06-05 16:09

Jeg kunne ikke selv få det til at virke på min egen server, men hvis det
nu virker på hendes, er det selvfølgelig en bedre måde at gøre det på!
--
Dan Storm

http://err0r.dk
storm@err0r.dk

PGP Public key på http://err0r.dk/pubring.pkr

>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område

Ukendt (01-06-2005)
Kommentar
Fra : Ukendt


Dato : 01-06-05 14:15

> <?php
> setlocale (LC_ALL, 'da_DK');
> $site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
> echo "Sitet er sidst opdateret $site_opdateret";
> ?>

Øhh så skrive den :
Sitet er sidst opdateret 1117631401

Øhh er det en dato ?



Dan Storm (01-06-2005)
Kommentar
Fra : Dan Storm


Dato : 01-06-05 14:33

<citat hvem=buffy>
Øhh så skrive den :
Sitet er sidst opdateret 1117631401

Øhh er det en dato ?
</citat>


prøv at skrive:
echo date('d/m-Y', '1117631401')
--
Dan Storm

http://err0r.dk
storm@err0r.dk

PGP Public key på http://err0r.dk/pubring.pkr

>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område

Ukendt (01-06-2005)
Kommentar
Fra : Ukendt


Dato : 01-06-05 15:05

> prøv at skrive:
> echo date('d/m-Y', '1117631401')

Nåhh sådan : )

<?php
setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
echo "Sitet er sidst opdateret ";
echo date('d/m-Y', $site_opdateret); ?>

mvh




Bertel Lund Hansen (01-06-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-06-05 15:42

"Buffy" <Tjekmig(snabel-a)pc.dk> skrev:

><?php
>setlocale (LC_ALL, 'da_DK');
>$site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
>echo "Sitet er sidst opdateret ";
>echo date('d/m-Y', $site_opdateret); ?>

Tæt på.

date() respecterer ikke setlocale(). Det gør derimod strftime().

Det følgende er testet og virker idet det forudsættes at den
aktuelle fils navn ligger i $filename:

<?
setlocale (LC_ALL, 'da_DK');
$site_opdateret = filemtime($filename);
echo "Siden er sidst opdateret ";
echo strftime('%A den %d. %B %Y', $site_opdateret);
?>

Bemærk punktummet efter datoen, og undlad at sætte komma efter
ugedagen. Det ville være en (sproglig) fejl.

Her kan man se mulighederne ved strftime():

http://dk2.php.net/manual/en/function.strftime.php

Og øverst på siden kan man i søgeboksen angive en anden funktion
som man vil læse om, f.eks. date() eller filemtime().

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Ukendt (02-06-2005)
Kommentar
Fra : Ukendt


Dato : 02-06-05 17:41

> <?php
> setlocale (LC_ALL, 'da_DK');
> $site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
> echo "Sitet er sidst opdateret ";
> echo date('d/m-Y', $site_opdateret); ?>


kan man få den til at tjekke undermapper også ?



Mikkel Z. Herold (02-06-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 02-06-05 21:05

On 02-06-2005 18:40 Buffy wrote:
> kan man få den til at tjekke undermapper også ?

Hvad mener du? Ved at sætte det sidste punktum i serverstien til din
rodmappe, tjekker den automatisk alle undermapper.

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Ukendt (02-06-2005)
Kommentar
Fra : Ukendt


Dato : 02-06-05 21:56

> Hvad mener du? Ved at sætte det sidste punktum i serverstien til din
> rodmappe, tjekker den automatisk alle undermapper.
>
> Mikkel

NEJ på : http://tjekmig.dk/galleri/index.php
har jeg skrevet :
<?php
setlocale (LC_ALL, 'da_DK');
$site_opdateret =
filemtime("/customers/tjekmig.dk/tjekmig.dk/httpd.www/galleri/.");
echo "er sidst opdateret ";

echo strftime('%d-%m-%Y / %H:%M:%S', $site_opdateret); ?>

Og hvis man uploader et foto til galleriet kommer de ind i en undermappe
tjekmig.dk/galleri/diverse
det se http://tjekmig.dk/galleri/index.php ikke ?

mvh



Mikkel Z. Herold (02-06-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 02-06-05 22:19

On 02-06-2005 22:56 Buffy wrote:
> Og hvis man uploader et foto til galleriet kommer de ind i en undermappe
> tjekmig.dk/galleri/diverse
> det se http://tjekmig.dk/galleri/index.php ikke ?

Hmmm... Det virker her hos mig. Hvis der "fysisk" placeres en billedfil
i en undermappe når man uploader, så burde det blive registreret.

Hvis billedet derimod lagres i en database, så er det det, der er problemet.

Som det er beskrevet længere oppe i tråden, så fanges den slags
ændringer ikke af ovenstående kode, for selve siden der viser billedet
bliver ikke ændret af, at der bliver uploadet et nyt billede - det er
indholdet i databasen, der bliver ændret.

Så skal du finde en måde at fastslå, hvornår det seneste billede er
blevet uploadet (måske har du en variabel for det i databasen?), og så
sammenligne det tidspunkt med tidspunktet du får fra den kode jeg gav
dig. Herefter er det bare at udskrive det seneste tidspunkt af de to -
problemet kan være at du ikke har en variabel med upload-tidspunktet i
din database. Jeg ved ikke, om databasen selv holder styr på den slags,
men det ved de helt sikkert i news:dk.edb.database

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Ukendt (02-06-2005)
Kommentar
Fra : Ukendt


Dato : 02-06-05 22:30

Bruger ikke database



Mikkel Z. Herold (02-06-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 02-06-05 23:18

On 02-06-2005 23:29 Buffy wrote:
> Bruger ikke database

Så ved jeg ikke, hvad der går galt.

Prøv i stedet med denne kode, taget fra
http://dk.php.net/manual/en/function.filemtime.php

function mostRecentModifiedFileTime($dirName,$doRecursive) {
$d = dir($dirName);
$lastModified = 0;
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (!is_dir($dirName."/".$entry)) {
$currentModified = filemtime($dirName."/".$entry);
} else if ($doRecursive && is_dir($dirName."/".$entry)) {
$currentModified = mostRecentModifiedFileTime($dirName."/".$entry,true);
}
if ($currentModified > $lastModified){
$lastModified = $currentModified;
}
}
}
$d->close();
return $lastModified;
}

Så skal du skrive:

$site_opdateret =
mostRecentModifiedFileTime("/server/sti/til/din/rodmappe/",true);

echo "Sidst opdateret: ".strftime('%d-%m-%Y / %H:%M:%S', $site_opdateret);

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Ukendt (03-06-2005)
Kommentar
Fra : Ukendt


Dato : 03-06-05 08:05

> Prøv i stedet med denne kode, taget fra
> http://dk.php.net/manual/en/function.filemtime.php

TAK her er den :
<?php function mostRecentModifiedFileTime($dirName,$doRecursive) {
$d = dir($dirName);
$lastModified = 0;
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (!is_dir($dirName."/".$entry)) {
$currentModified = filemtime($dirName."/".$entry);
} else if ($doRecursive && is_dir($dirName."/".$entry)) {
$currentModified = mostRecentModifiedFileTime($dirName."/".$entry,true);
}
if ($currentModified > $lastModified){
$lastModified = $currentModified;
}
}
}
$d->close();
return $lastModified;
}



$site_opdateret =
mostRecentModifiedFileTime("/customers/tjekmig.dk/tjekmig.dk/httpd.www/galleri/",true);

echo "er sidst opdateret: ".strftime('%d-%m-%Y / %H:%M:%S',
$site_opdateret); ?>



Bertel Lund Hansen (02-06-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 02-06-05 23:31

"Buffy" <Tjekmig(snabel-a)pc.dk> skrev:

>> <?php
>> setlocale (LC_ALL, 'da_DK');
>> $site_opdateret = filemtime("/server/sti/til/din/rodmappe/.");
>> echo "Sitet er sidst opdateret ";
>> echo date('d/m-Y', $site_opdateret); ?>

>kan man få den til at tjekke undermapper også ?

Hvad mener du med tjekke? filemtime() returnerer data for ét
objekt, og det er det man specificerer i parentesen.

Hvis du vil have udskrevet datoer for mange filer, må du
gennemløbe dem en ad gangen, og så er det gennemløbsrutinen der
skal finde og tjekke undermapper.

PS. setlocale() har ingen effekt på date().

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Mikkel Z. Herold (02-06-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 02-06-05 10:17

On 01-06-2005 15:15 Buffy wrote:
> Øhh så skrive den :
> Sitet er sidst opdateret 1117631401

Sådan går det, når det går for hurtigt!

Variablen $site_opdateret skal selvfølgelig lige en tur gennem
strftime(), som Bertel skriver, før den bliver læselig. Beklager!

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Arne Feldborg (01-06-2005)
Kommentar
Fra : Arne Feldborg


Dato : 01-06-05 15:30

Gitte Nielsen <gitte_nielsenNOSPAM@newmail.dk> skrev 01 Jun 2005
10:42:30 GMT


> Senest opdateret: Onsdag, den 1. juni 2005 (som et eksempel)
>
Hvis du bare ønske at skrive hvornår den pågældende *side* sidst er
opdateret kan du nøjes med noget i den her stil:

<?php
print
'Last modified: '.strftime( "%d-%m-%Y / %H:%M:%S", getlastmod( ) );
?>


--
mvh, A:\Feldborg

Folketællinger Hammerum og Bølling herreder, kirkebøger Hammerum herred
http://www.haunstrup.dk/feldborg/genealogi/download/

Bertel Lund Hansen (01-06-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-06-05 15:47

Arne Feldborg skrev:

>'Last modified: '.strftime( "%d-%m-%Y / %H:%M:%S", getlastmod( ) );

Det ser temmelig engelsk ud, og så følger det i øvrigt heller
ikke det ønskede format.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Arne Feldborg (01-06-2005)
Kommentar
Fra : Arne Feldborg


Dato : 01-06-05 21:19

Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev Wed, 01 Jun 2005
16:46:48 +0200


>>'Last modified: '.strftime( "%d-%m-%Y / %H:%M:%S", getlastmod( ) );
>
>Det ser temmelig engelsk ud, og så følger det i øvrigt heller
>ikke det ønskede format.
>
Det var s'mænd bare for at vise hvor simpelt selve grundrutinen kan
være, i modsætning til de andre mere sofistikerede forslag.

At ændre "Last modified:" til dansk turde være et mindre problem.
Og der var ikke i spørgsmålet forlangt et bestemt format - men bare
ønsket et forslag til hvordan spørgeren kunne komme vidre.

Det må så være op til spørgeren selv at undersøge/afprøve de muligheder
der ligger i strftime().


--
mvh, A:\Feldborg

Folketællinger Hammerum og Bølling herreder, kirkebøger Hammerum herred
http://www.haunstrup.dk/feldborg/genealogi/download/

Bertel Lund Hansen (02-06-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 02-06-05 10:00

Arne Feldborg skrev:

>Det var s'mænd bare for at vise hvor simpelt selve grundrutinen kan
>være, i modsætning til de andre mere sofistikerede forslag.

Jeg læste ud af spørgsmålet at hun sagtens kunne få en engelsk
dato frem, og da der stod "dansk" i overskriften og der stod en
dansk udskrift som eksempel, syntes jeg det ramte noget ved siden
af med et rent engelsk forslag.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Gitte Nielsen (02-06-2005)
Kommentar
Fra : Gitte Nielsen


Dato : 02-06-05 13:25

Jeg takker for den meget venlige hjælp fra alle...

Jeg har nu fået det til at køre som jeg ønskede, og er også begyndt
at se strukturen i PHP. Det er faktisk et meget logisk sprog, når
man først får "knækket nøden".

Jeg lukker hermed spørgsmålet, og kan nu arbejde videre (og lære
mere) med PHP.

Tak for hjælpen

De venligste hilsner
Gitte

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste