|
| 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
>
>
>
| |
|
|