/ 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
Vildt underlig dato-streng
Fra : Jean Jensen


Dato : 20-10-08 07:16

Hej NG

Dato-strengen er i hvertfald underlig for mig !

Jeg har et forum (http://punbb.informer.com/), som viser dato for
oprettelse af brugere samt for indlæg.

"1221952024" giver "21. Sep 2008"

Hvor i min PHPadmin ændrer jeg, så visningen bliver på dansk og
stadig med blot 3 bogstaver for måneden ?

\ Kapunen



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

 
 
Bertel Lund Hansen (20-10-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 20-10-08 07:42

Jean Jensen skrev:

> Jeg har et forum (http://punbb.informer.com/), som viser dato for
> oprettelse af brugere samt for indlæg.

> "1221952024" giver "21. Sep 2008"

> Hvor i min PHPadmin ændrer jeg, så visningen bliver på dansk og
> stadig med blot 3 bogstaver for måneden ?

PHP-manuaklen er desværre nede, så jeg kan ikke slå op i den
eller henvise til den.

Der er flere danske formater.

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

vil udskrive en dansk dato som eksempelvis

   lørdag den 6. januar 1985

setlocale() indstiller hvilken nations standarder der skal
bruges.

Husk at date() *ikke* tager hensyn til locale(). Det gør derimod
strftime(). Når manualen virker, kan du slå op under strftime()
hvilke muligheder der er:

   http://dk.php.net/

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

Bertel Lund Hansen (20-10-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 20-10-08 07:55

Bertel Lund Hansen skrev:

> PHP-manuaklen er desværre nede

Næ, det er den ikke. Den jeg har brugt hidtil, er bare holdt op
med at virke. Her er link til et opslag:

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

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

Jean Jensen (20-10-2008)
Kommentar
Fra : Jean Jensen


Dato : 20-10-08 09:10

Bertel Lund Hansen wrote:
> Bertel Lund Hansen skrev:
>
> > PHP-manuaklen er desværre nede
>
> Næ, det er den ikke. Den jeg har brugt hidtil, er bare holdt op
> med at virke. Her er link til et opslag:
>
>    http://dk2.php.net/manual/en/function.strftime.php
>

Hmmm...

Jeg har følgende kildekode:

----------------------------------

// Determine what locale to use
switch (PHP_OS)
{
case 'WINNT':
case 'WIN32':
$locale = 'danish';
break;

case 'FreeBSD':
case 'NetBSD':
case 'OpenBSD':
$locale = 'da_DK.ISO8859-1';
break;

default:
$locale = 'da_DK';
break;
}

// Attempt to set the locale
setlocale(LC_ALL, $locale);


// Language definitions for frequently used strings
$lang_common = array(

// Text orientation and encoding
'lang_direction'      =>   'ltr',   // ltr (Left-To-Right) or rtl
(Right-To-Left)
'lang_encoding'         =>   'da_DK.ISO8859-1',
'lang_multibyte'      =>   false,

----------------------------------

- men det står stadig på engelsk...... Vil godt have det på
dansk. (Troede at det var i PHPadmin jeg kunne sætte dette.)

\ Kapunen

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

Martin (20-10-2008)
Kommentar
Fra : Martin


Dato : 20-10-08 12:27

Jean Jensen wrote:
> Bertel Lund Hansen wrote:
>> Bertel Lund Hansen skrev:
>>
>>> PHP-manuaklen er desværre nede
>>
>> Næ, det er den ikke. Den jeg har brugt hidtil, er bare holdt op
>> med at virke. Her er link til et opslag:
>>
>>    http://dk2.php.net/manual/en/function.strftime.php
>>
>
> Hmmm...
>
> Jeg har følgende kildekode:
>
> ----------------------------------
>
> // Determine what locale to use
> switch (PHP_OS)
> {
> case 'WINNT':
> case 'WIN32':
> $locale = 'danish';
> break;
>
> case 'FreeBSD':
> case 'NetBSD':
> case 'OpenBSD':
> $locale = 'da_DK.ISO8859-1';
> break;
>
> default:
> $locale = 'da_DK';
> break;
> }
>
> // Attempt to set the locale

echo $locale;
// Hvad giver dette?
// Hvis det giver danish, så er det forkert


> setlocale(LC_ALL, $locale);
>
>
> // Language definitions for frequently used strings
> $lang_common = array(
>
> // Text orientation and encoding
> 'lang_direction'      =>   'ltr',   // ltr (Left-To-Right) or rtl
> (Right-To-Left)
> 'lang_encoding'         =>   'da_DK.ISO8859-1',
> 'lang_multibyte'      =>   false,
>
> ----------------------------------
>
> - men det står stadig på engelsk...... Vil godt have det på
> dansk. (Troede at det var i PHPadmin jeg kunne sætte dette.)
>
> \ Kapunen
>

Bertel Lund Hansen (20-10-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 20-10-08 12:40

Jean Jensen skrev:

> Jeg har følgende kildekode:

Jeg har aldrig brugt andet end 'da_DK'. Hvor har du fra at det
skulle være forskelligt på forskellige servertyper?

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

Preben Dahl (20-10-2008)
Kommentar
Fra : Preben Dahl


Dato : 20-10-08 13:30

Hej Jean

Prøv at lave en php fil med dette og se om ikke det virker

<?php
setlocale(LC_ALL, 'Danish');
echo strftime(" I Danmark er dato og tiden = %b %d, %Y %I:%M:%S %
P") . "\n";
echo strftime(" I Danmark er datoen = %b %d, %Y");
?>

På min server virker dk_DA ikke men Danish gør :)


Mvh Preben


Mathias (21-10-2008)
Kommentar
Fra : Mathias


Dato : 21-10-08 09:45

>
> Jeg har aldrig brugt andet end 'da_DK'. Hvor har du fra at det
> skulle være forskelligt på forskellige servertyper?
>

På min server (Web10) er det kun 'da_DK.ISO8859-1' som virker. Hvorfor ved
jeg ikke, men det er åbenbart forskelligt altefter servertype/config.

Mvh Mathias


Bertel Lund Hansen (21-10-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 21-10-08 12:08

Mathias skrev:

> På min server (Web10) er det kun 'da_DK.ISO8859-1' som virker. Hvorfor ved
> jeg ikke, men det er åbenbart forskelligt altefter servertype/config.

Sikke noget rod. Det burde være lavet usynligt for
PHP-programmøren.

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

Jean Jensen (21-10-2008)
Kommentar
Fra : Jean Jensen


Dato : 21-10-08 12:44

Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
>
> Sikke noget rod. Det burde være lavet usynligt for
> PHP-programmøren.
>

Jeps!

Jeg har nu forsøgt alle forslag og uanset hvad, så står månederne på engelsk, så
det må være serveren der selv "oversætter".

Og nu orker jeg ikke dét mere, så jeg har sat dato-formatet til "d/m Y", hvilket
giver 24/12 2008. Så er jeg ude over dét...

1.000 tak for hjælpen, drenge

\ Kapunen

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

Preben Dahl (21-10-2008)
Kommentar
Fra : Preben Dahl


Dato : 21-10-08 13:22

I sprog filen common.php står dette, er det udkommaret så det er
aktivt og indsat de forslag vi alle er kommet med, for her tages der
jo netop højde for hvilken server type der bruges.

// Determine what locale to use
switch (PHP_OS)
{
   case 'WINNT':
   case 'WIN32':
      $locale = 'english';
      break;

   case 'FreeBSD':
   case 'NetBSD':
   case 'OpenBSD':
      $locale = 'en_US.US-ASCII';
      break;

   default:
      $locale = 'en_US';
      break;
}

// Attempt to set the locale
setlocale(LC_CTYPE, $locale);

Mvh Preben

Dan Storm (21-10-2008)
Kommentar
Fra : Dan Storm


Dato : 21-10-08 13:29

Jean Jensen skrev:
> Jeg har nu forsøgt alle forslag og uanset hvad, så står månederne på engelsk, så
> det må være serveren der selv "oversætter".

Dog ikke...

> Og nu orker jeg ikke dét mere, så jeg har sat dato-formatet til "d/m Y", hvilket
> giver 24/12 2008. Så er jeg ude over dét...

Dit problem har så lagt i at du bruger date() istedet for strftime();

For at strftime() skal virke skal du også sikre dig hvilket local du kan
bruge.
Du kan på serveren eksekvere "locale -a" for at for alle dine locales.

I mit tilfælde har jeg både da_DK og da_DK.ISO8859-1

Alternativt kan du jo tjekke om du får fat i den rigtige.

if(setlocale(LC_ALL, "da_DK.ISO8859-1") === false)
   echo "Virker ikke";

Men nu fortæller du jo at da_DK.ISO8859-1 er det der virker på din
server, så istedet for at bruge date("d/m Y", $timestamp); så prøv at
bruge strftime("%d. %b %Y", $timestamp);

Det skulle gerne give dig et bedre resultat.


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Philip Nunnegaard (21-10-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 21-10-08 16:02

"Jean Jensen" <jejSNABEL@podaPUNKTUM.com> skrev

> Jeg har nu forsøgt alle forslag og uanset hvad, så står månederne på
> engelsk, så
> det må være serveren der selv "oversætter".
>
> Og nu orker jeg ikke dét mere, så jeg har sat dato-formatet til "d/m Y",
> hvilket
> giver 24/12 2008. Så er jeg ude over dét...

Så er der jo også muligheden for at smide månedernes danske navne ind i et
array:

$maaneder = array("","jan.","feb.","mar",...osv.)

echo date('d').". ".$maaneder[date('m')]." ".date('Y');
Skulle gerne returnere: "21. okt. 2008".


Bertel Lund Hansen (21-10-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 21-10-08 17:59

Philip Nunnegaard skrev:

> Så er der jo også muligheden for at smide månedernes danske navne ind i et
> array:

Det er ikke nødvendigt. Man skal bare glemme at date() eksisterer
og altid bruge strftime().

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

Philip Nunnegaard (21-10-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 21-10-08 20:25

"Bertel Lund Hansen" <unospamo@lundhansen.dk> skrev

> Det er ikke nødvendigt. Man skal bare glemme at date() eksisterer
> og altid bruge strftime().

Kan hænde at det ikke er nødvendigt på alle servere, og det kan da også
hænde at det ikke er nødvendigt på PHP-servere.
Jeg havde dog engnag en ASP-side liggende på et webhotel, der konstant
skiftede mellem dansk og amerikansk datoformat, så man ikke kunne regne med
en dyt.
Jeg endte med selv at definere mit eget datoformat og visningen af denne (og
gik derfor væk fra vbLongDate). På den måde slap jeg for at være afhængig af
hvad udbyderen måtte finde på af tossestreger.


Bertel Lund Hansen (21-10-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 21-10-08 22:45

Philip Nunnegaard skrev:

> Jeg havde dog engnag en ASP-side liggende på et webhotel, der konstant
> skiftede mellem dansk og amerikansk datoformat

Det er da også for sindssygt.

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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408919
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste