/ 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
ugedag/måned på DK
Fra : Mugge


Dato : 19-08-02 17:42

Jeg har en kode der hedder:

<?php
putenv("Europe/Copenhagen");
echo "Siden er sidst opdateret: " . date( "l, d. F Y", getlastmod() );
?>

Det bliver så til: Siden er sidst opdateret: Monday, 19. August 2002

Hvordan retter jeg det til danske "forhold", dvs. danske ugenavne, måneder
mm.


Mugge


--

mugge.lfc@elvis.dk

http://www.thebootroom.dk




 
 
Jens Tønnesen (19-08-2002)
Kommentar
Fra : Jens Tønnesen


Dato : 19-08-02 17:52

"Mugge" <mugge.lfcREMOVE@elvis.dk> skrev den Mon, 19 Aug 2002 18:42:28
+0200 i dk.edb.internet.webdesign.serverside.php:

>Hvordan retter jeg det til danske "forhold", dvs. danske ugenavne, måneder
>mm.

Prøv at indsætte koden

   setlocale('LC_ALL',"da_DK");

først i scriptet.

--
Jens Tønnesen - http://www.pressefoto.dk

Jeppe Vesterbæk (19-08-2002)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 19-08-02 18:29

> Prøv at indsætte koden
>
> setlocale('LC_ALL',"da_DK");

Skulle det ikke virke, kan du jo bare lave din egen lange simple datofuntion

function dato($dato, $uge=true, $tid=false){
//UGEDAGNAVN FINDES
switch (date("w", $dato)) {
case 0:
$ugedag="søndag";
break;
case 1:
$ugedag="mandag";
break;
case 2:
$ugedag="tirsdag";
break;
case 3:
$ugedag="onsdag";
break;
case 4:
$ugedag="torsdag";
break;
case 5:
$ugedag="fredag";
break;
case 6:
$ugedag="lørdag";
break;
}

//MÅNEDNAVN FINDES
switch (date("m", $dato)) {
case 1:
$maaned = "januar";
break;
case 2:
$maaned = "februar";
break;
case 3:
$maaned = "marts";
break;
case 4:
$maaned = "april";
break;
case 5:
$maaned = "maj";
break;
case 6:
$maaned = "juni";
break;
case 7:
$maaned = "juli";
break;
case 8:
$maaned = "august";
break;
case 9:
$maaned = "september";
break;
case 10:
$maaned = "oktober";
break;
case 11:
$maaned = "november";
break;
case 12:
$maaned = "december";
break;
}
$tid2 = "kl. " . date("G:i", $dato);

$dag = date("j", $dato);
$ugenr = date("W", $dato);
$aar = date("Y", $dato);
$datotekst = "$ugedag d. $dag. $maaned $aar";
if ($uge) $datotekst .= " ::: uge $ugenr";
if ($tid) $datotekst .= "$tid2";
return $datotekst;
}

Ikke vildt pæn, men fungerer.

/Jeppe



Jonas Koch Bentzen (19-08-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 19-08-02 19:00

Jeppe Vesterbæk skrev:
>
> Skulle det ikke virke, kan du jo bare lave din egen lange simple datofuntion
>
> function dato($dato, $uge=true, $tid=false){
> //UGEDAGNAVN FINDES
> switch (date("w", $dato)) {

Simple og simple... Det ville enklere at bruge arrays med månedsnavnene,
ugedag-navnene mv. Og det ville være endnu bedre at bruge PHP's
indbyggede funktioner til formålet:

setlocale(LC_ALL, "da_DK");

echo ucfirst(strftime("%A den %e. %B %Y kl. %H:%M", getlastmod()));


Mugge (19-08-2002)
Kommentar
Fra : Mugge


Dato : 19-08-02 19:29

> Simple og simple... Det ville enklere at bruge arrays med månedsnavnene,
> ugedag-navnene mv. Og det ville være endnu bedre at bruge PHP's
> indbyggede funktioner til formålet:
>
> setlocale(LC_ALL, "da_DK");
>
> echo ucfirst(strftime("%A den %e. %B %Y kl. %H:%M", getlastmod()));
>

Beklager, men ingen af løsningerne virker.
Den skriver det stadig på engelsk!


Mugge



Jens Tønnesen (19-08-2002)
Kommentar
Fra : Jens Tønnesen


Dato : 19-08-02 19:52

"Mugge" <mugge.lfcREMOVE@elvis.dk> skrev den Mon, 19 Aug 2002 20:29:17
+0200 i dk.edb.internet.webdesign.serverside.php:

>Beklager, men ingen af løsningerne virker.
>Den skriver det stadig på engelsk!

Prøv med

setlocale('LC_ALL',"");

i stedet for - den virker nogen gange, hvis serveren er en
Windows-maskine.

--
Jens Tønnesen - http://www.pressefoto.dk

Jonas Koch Bentzen (19-08-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 19-08-02 21:36

Mugge skrev:
>>Simple og simple... Det ville enklere at bruge arrays med månedsnavnene,
>>ugedag-navnene mv. Og det ville være endnu bedre at bruge PHP's
>>indbyggede funktioner til formålet:
>>
>>setlocale(LC_ALL, "da_DK");
>>
>>echo ucfirst(strftime("%A den %e. %B %Y kl. %H:%M", getlastmod()));
>>
>
>
> Beklager, men ingen af løsningerne virker.
> Den skriver det stadig på engelsk!

Prøv med "da" i stedet for "da_DK". Og læs kommentarerne på
http://dk.php.net/manual/en/function.setlocale.php, så du ved hvilke
problemer, du kan støde ind i. Kombinationen setlocale() og strftime()
er efter min mening stadig 100 gange bedre end array- eller
switch-løsninger.


[5000] Jesper Brunho~ (20-08-2002)
Kommentar
Fra : [5000] Jesper Brunho~


Dato : 20-08-02 12:01

Mugge wrote:
>>Simple og simple... Det ville enklere at bruge arrays med månedsnavnene,
>>ugedag-navnene mv. Og det ville være endnu bedre at bruge PHP's
>>indbyggede funktioner til formålet:
>>
>>setlocale(LC_ALL, "da_DK");

jeg har på et tidspunkt haft bedre succes med "danish" end med "da_DK"

mvh

Jesper Brunholm





Tinky Winky (19-08-2002)
Kommentar
Fra : Tinky Winky


Dato : 19-08-02 20:04

> Skulle det ikke virke, kan du jo bare lave din egen lange simple
datofuntion

Eller array:

<?

$timestamp = time(); // sætter timestampet lig med "nu"

// søndag får tal-index 0, mandag får 1 osv. og det passer med de numre vi
får ud af date("w");
$danskeDage = array("søndag", "mandag", "tirsdag", "onsdag", "torsdag",
"fredag", "lørdag");

// vi finder det nummer der svarer til dagen
$dagNummer = date("w", $timestamp);

echo "Jeg skal have en is på ".$danskeDage[$dagNummer];

?>

Testet og virkede.



Mugge (19-08-2002)
Kommentar
Fra : Mugge


Dato : 19-08-02 20:45

> <?
>
> $timestamp = time(); // sætter timestampet lig med "nu"
>
> // søndag får tal-index 0, mandag får 1 osv. og det passer med de numre vi
> får ud af date("w");
> $danskeDage = array("søndag", "mandag", "tirsdag", "onsdag", "torsdag",
> "fredag", "lørdag");
>
> // vi finder det nummer der svarer til dagen
> $dagNummer = date("w", $timestamp);
>
> echo "Jeg skal have en is på ".$danskeDage[$dagNummer];
>
> ?>
>
> Testet og virkede.
>

Så nu virkede det lidt. (Den kan i det mindste skrive mandag nu).
Nu er jeg så ikke nogen ørn, så det med at få det modificeret til det jeg
gerne vil have er nok lidt ud over mine evner, så...
Hvordan vil det så se ud hvis jeg skal have følgende til at stå:
"Siden er sidst opdateret mandag d. 19. august 2002"?
Er der en der gider?


Mugge



Tinky Winky (19-08-2002)
Kommentar
Fra : Tinky Winky


Dato : 19-08-02 22:25


"Mugge" <mugge.lfcREMOVE@elvis.dk> skrev i en meddelelse
news:ajrhs4$vek$1@news.cybercity.dk...
> > <?
> >
> > $timestamp = time(); // sætter timestampet lig med "nu"
> >
> > // søndag får tal-index 0, mandag får 1 osv. og det passer med de numre
vi
> > får ud af date("w");
> > $danskeDage = array("søndag", "mandag", "tirsdag", "onsdag", "torsdag",
> > "fredag", "lørdag");
> >
> > // vi finder det nummer der svarer til dagen
> > $dagNummer = date("w", $timestamp);
> >
> > echo "Jeg skal have en is på ".$danskeDage[$dagNummer];
> >
> > ?>
> >
> > Testet og virkede.
> >
>
> Så nu virkede det lidt. (Den kan i det mindste skrive mandag nu).
> Nu er jeg så ikke nogen ørn, så det med at få det modificeret til det jeg
> gerne vil have er nok lidt ud over mine evner, så...
> Hvordan vil det så se ud hvis jeg skal have følgende til at stå:
> "Siden er sidst opdateret mandag d. 19. august 2002"?
> Er der en der gider?

$danskeDage[$dagNummer] peger nu på "mandag" eller den dag som $timestamp
nu er. Er du med på det?

Følgende kan du godt overskue, ikke?
echo "hej, dagen er ".$danskeDage[$dagNummer] ." juhuuu";

evt. for at det ikke skal se så rodet ud, kan du sætte en variabel lige
$danskeDage[$dagNummer]:
$dagPaaDansk = $danskeDage[$dagNummer];

Så skal du have fat i de andre stumper af det du vil skrive ud og
sammensætte det hele.

Mht. at lave det samme med månederne, laver du et array på samme måde, men
skriver i stedet "januar", "februar" osv. Og så kan $dagNummer fx udskiftes
med $maanedNummer og fås så vidt jeg husker med date("m") eller date("n").

Læs gerne om arrays i manualen, de er smarte.



Mugge (20-08-2002)
Kommentar
Fra : Mugge


Dato : 20-08-02 12:19

> $danskeDage[$dagNummer] peger nu på "mandag" eller den dag som $timestamp
> nu er. Er du med på det?
>
> Følgende kan du godt overskue, ikke?
> echo "hej, dagen er ".$danskeDage[$dagNummer] ." juhuuu";
>
> evt. for at det ikke skal se så rodet ud, kan du sætte en variabel lige
> $danskeDage[$dagNummer]:
> $dagPaaDansk = $danskeDage[$dagNummer];
>
> Så skal du have fat i de andre stumper af det du vil skrive ud og
> sammensætte det hele.
>
> Mht. at lave det samme med månederne, laver du et array på samme måde, men
> skriver i stedet "januar", "februar" osv. Og så kan $dagNummer fx
udskiftes
> med $maanedNummer og fås så vidt jeg husker med date("m") eller date("n").
>

Tænk engang - nu virker det fandme!!
(undskyld min begejstring - men man lærer lidt nyt hver gang - og TAK for
hjælpen)

Fik det lavet til så det nu ser sådan ud:

<?

$timestamp = time(); // sætter timestampet lig med "nu"

// søndag får tal-index 0, mandag får 1 osv. og det passer med de numre vi
får ud af date("w");
$danskeDage = array("søndag", "mandag", "tirsdag", "onsdag", "torsdag",
"fredag", "lørdag");

// vi finder det nummer der svarer til dagen
$dagNummer = date("w", $timestamp);

// december får tal-index 0, januar får 1 osv.("n");
$danskemaaneder = array("december", "januar", "februar", "marts", "april",
"maj", "juni", "juli", "august",
"september", "oktober", "november");

// vi finder det nummer der svarer til måneden
$maanedNummer = date("n", $timestamp);

echo "Siden er sidst opdateret ".$danskeDage[$dagNummer];
echo " den ". date( "d", getlastmod() );
echo ". ".$danskemaaneder[$maanedNummer]. date( " Y", getlastmod() );

?>

Dette giver resultatet:
Siden er sidst opdateret tirsdag den 20. august 2002

Jeg kan godt forstå hvorfor søndag skal starte med 0 (det må vel være noget
amerikansk),
men hvorfor er 0 for månederne så december?
Er der en logisk forklaring på det.
Burde vel starte med januar?


Mugge



Andreas Kleist Svend~ (20-08-2002)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 20-08-02 12:29

Mugge wrote:

> men hvorfor er 0 for månederne så december?

Det er 0 heller ikke, du får aldrig 0 med date('n', $timestamp).

> Er der en logisk forklaring på det.
> Burde vel starte med januar?

Ja, og det gør den også. Se http://dk.php.net/date

--
mvh Andreas Kleist Svendsen


Mugge (20-08-2002)
Kommentar
Fra : Mugge


Dato : 20-08-02 15:28

> > men hvorfor er 0 for månederne så december?
>
> Det er 0 heller ikke, du får aldrig 0 med date('n', $timestamp).
>
> > Er der en logisk forklaring på det.
> > Burde vel starte med januar?
>
> Ja, og det gør den også. Se http://dk.php.net/date
>

Som det er nu fungere det, men jeg formoder så at det så måske kun er på
lånt tid.
Stumpen med månederne ser på nuværende tidspunkt sådan ud:

$danskemaaneder = array("december", "januar", "februar", "marts", "april",
"maj", "juni", "juli", "august",
"september", "oktober", "november");

$maanedNummer = date("n", $timestamp);

Hvad er det så der skal rettes?
skifter jeg 'n' ud med 'm', så kommer der slet ikke til at stå noget.

At gå ind på http://dk.php.net/date hjælper mig ikke. Det er for meget
fagsprog.


Mugge



Johan Holst Nielsen (20-08-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 20-08-02 15:33

> Som det er nu fungere det, men jeg formoder så at det så måske kun er på
> lånt tid.
> Stumpen med månederne ser på nuværende tidspunkt sådan ud:
>
> $danskemaaneder = array("december", "januar", "februar", "marts", "april",
> "maj", "juni", "juli", "august",
> "september", "oktober", "november");
>
> $maanedNummer = date("n", $timestamp);
>
> Hvad er det så der skal rettes?
> skifter jeg 'n' ud med 'm', så kommer der slet ikke til at stå noget.
>
> At gå ind på http://dk.php.net/date hjælper mig ikke. Det er for meget
> fagsprog.

$danskemaaneder = array("1"=>"januar", "2"=>"februar", "3"=>"marts",
"4"=>"april", "5"=>"maj", "6"=>"juni", "7"=>"juli", "8"=>"august",
"9"=>"september", "10"=>"oktober", "11"=>"november", "12"=>"december");

echo $danskemaaneder[date("n")];

mvh
Johan


Flemming Joensson (20-08-2002)
Kommentar
Fra : Flemming Joensson


Dato : 20-08-02 20:16

Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
news:ajt964$2vm8$2@news.cybercity.dk:

>> men hvorfor er 0 for månederne så december?
>
> Det er 0 heller ikke, du får aldrig 0 med date('n', $timestamp).
>

0 er den forgangne måned.
så hvis du skriver
date("m", mktime(0,0,0,0,date("d"),date("Y")));
(Men du får aldrig date ("n") til at returnere 0, men du kan bruge den
i mktime.)

Så er det det samme som
date("m", mktime(0,0,0,date("m")-1,date("d"),date("Y")));

Tilsvarende kan du gøre med dage og år.

Jeg bruger den måde PHP wrapper datoer på til at lave en kalender - jeg
tæller så bare fra dags dato +x måneders offset. Selvom man når op på
>=13 måneders offset er det ikke noget problem fordi at 20. dag i
f.eks. den 13. måned i 2002, svarer til den 20. dag i den anden måned i
2003 (så vidt jeg lige husker det).

Man kan også sagtens have negative offset, og så få forgange datoer på
den måde.

Flemming

Johan Holst Nielsen (20-08-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 20-08-02 14:17

> Jeg kan godt forstå hvorfor søndag skal starte med 0 (det må vel være noget
> amerikansk),
> men hvorfor er 0 for månederne så december?
> Er der en logisk forklaring på det.
> Burde vel starte med januar?

Øøhhh... er den da heller ikke?

Date()
n - month without leading zeros; i.e. "1" to "12"
m - month; i.e. "01" to "12"

mvh
Johan


Lasse Hedegaard (19-08-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 19-08-02 19:21

Jens Tønnesen skrev:

>Prøv at indsætte koden
>
>   setlocale('LC_ALL',"da_DK");
>
>først i scriptet.

Hvad skal man punke sin sysadm med for at få dette til at virke?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Thomas Pilgaard Niel~ (19-08-2002)
Kommentar
Fra : Thomas Pilgaard Niel~


Dato : 19-08-02 19:28

Kan du ikke bruge strftime() ? (http://dk.php.net/manual/en/function.strftime.php)

hth,

Thomas

Mugge wrote:
> Jeg har en kode der hedder:
>
> <?php
> putenv("Europe/Copenhagen");
> echo "Siden er sidst opdateret: " . date( "l, d. F Y", getlastmod() );
> ?>
>
> Det bliver så til: Siden er sidst opdateret: Monday, 19. August 2002
>
> Hvordan retter jeg det til danske "forhold", dvs. danske ugenavne, måneder
> mm.
>
>
> Mugge
>
>
> --
>
> mugge.lfc@elvis.dk
>
> http://www.thebootroom.dk
>
>
>


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

Månedens bedste
Årets bedste
Sidste års bedste