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