Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  27 9408
Noen som har en kode som gjør at datoen i PHP blir til norsk?

Husker å ha lestt i en phpbok noe med

case = Monday
echo = Mandag
break;

noe sånt.


Eller noe jeg kan gjøre i en fil i Apache eller php?

takker for svar
Kan jo bruke if-then-else statement og print, men dette er jo en meget tungvint måte.
Sist endret av s1gh; 21. desember 2007 kl. 23:31.
hm, noen som kan gi meg en kode? Er ikke så god på det.

Men er det noe jeg kan endre på på serveren? php.ini elns?
19.........bokstaver
bavarai's Avatar

Kode

<?
$date = date('dinformulering');
$date = str_replace('December', 'Desember', $date');
?>
Edit: Du kan bruke array. http://php.net/array
Sist endret av comi; 21. desember 2007 kl. 23:37.
Hvordan gjør jeg det hvis jeg vil ha med alle måneder og dager?
19.........bokstaver
bavarai's Avatar

Kode

<?
$date = str_replace('ANNENMÅNED', 'ANNEDMÅNED', $date');
?>
Sist endret av comi; 21. desember 2007 kl. 23:39.
Så jeg kopierer bare linjen, og setter inn forskjellige dager og måneder?
Limited edition
Moff's Avatar
Korrekt.

Kode

$dato = str_replace ( 'Monday', 'Mandag', $dato );
$dato = str_replace ( 'Tuesday', 'Tirsdag', $dato );
$dato = str_replace ( 'October', 'Oktober', $dato );
Og slik kan du fortsette. Det finnes mer effektive replace-metoder meg bekjent, men prinsippet er egentlig det samme.
Sist endret av Moff; 22. desember 2007 kl. 00:04.
Sitat av Moff
Korrekt.

Kode

$dato = str_replace ( 'Monday', 'Mandag', $dato );
$dato = str_replace ( 'Tuesday', 'Tirsdag', $dato );
$dato = str_replace ( 'October', 'Oktober', $dato );
Og slik kan du fortsette. Det finnes mer effektive replace-metoder meg bekjent, men prinsippet er egentlig det samme.
Vis hele sitatet...

Så dato er da i mitt tilfelle:

$dato = date('l d.m.Y ');

og det vil fungere?
Nei vær så snill.. "Less is more"

Kode

<?php
$months = array('', 'januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember');
$days = array('', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag', 'søndag');

$month = $months[date('n')];
$day   = $days[date('N')];

echo 'Måned: '. $month ."<br />\n"; // desember
echo 'Dag: '. $day ."<br />\n"; // lørdag
?>
Fikk det till sånn som dette

Kode

<?php 
$dato = date('l d F Y'); //Viser f.eks: Lørdag 22 Desember 2007 Klokken 00:22:51

$dato = str_replace ( 'Monday', 'Mandag', $dato ); //Bytter ut engelsk dag med norsk
$dato = str_replace ( 'Tuesday', 'Tirsdag', $dato ); //Bytter ut engelsk dag med norsk
$dato = str_replace ( 'Wednesday', 'Onsdag', $dato ); //Bytter ut engelsk dag med norsk
$dato = str_replace ( 'Thursday', 'Torsdag', $dato ); //Bytter ut engelsk dag med norsk
$dato = str_replace ( 'Friday', 'Fredag', $dato ); //Bytter ut engelsk dag med norsk
$dato = str_replace ( 'Saturday', 'Lørdag', $dato ); //Bytter ut engelsk dag med norsk
$dato = str_replace ( 'Sunday', 'Søndag', $dato ); //Bytter ut engelsk dag med norsk
$dato = str_replace ( 'January', 'Januar', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'February', 'Februar', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'March', 'Mars', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'April', 'April', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'May', 'Mai', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'June', 'Juni', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'July', 'Juli', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'August', 'August', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'September', 'September', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'October', 'Oktober', $dato ); ///Bytter ut engelsk måned med norsk
$dato = str_replace ( 'November', 'November', $dato ); //Bytter ut engelsk måned med norsk
$dato = str_replace ( 'December', 'Desember', $dato ); //Bytter ut engelsk måned med norsk


echo $dato . " Klokken " . date('H:i:s'); //Skriver ut norsk dato + tid
?>
Vil det ta lang tid hvis jeg f.eks skal vise nyheter?
Hvorfor bruke så sykt mye kode, og ikke minst mange funksjoner etter hverandre, når du kan fikse akkurat det samme med bare noen linjer, slik jeg viser til? Hvis du kjører mange av disse, vil jeg tro det er mye raskere å bare bruke array.

God jul
hvordan er det med search og replace. har du en kode for det?

EDIT: Glem det, jeg trenger ikke å bruke koden til det. Skal bare bruke den til inndata i databasen. Takk for hjelpen

God jul!
Sist endret av fulloggal; 22. desember 2007 kl. 00:57.
Det er switch du er ute etter fulloggal.

Kode

<?php
$dag = date(l); //liten "L"
switch($dag) {
case 'Monday':
        echo "Mandag";
        break;
case 'Tuesday':
        echo "Tirsdag";
        break;
case 'Wednesday':
        echo "Onsdag";
        break;
case 'Thursday':
        echo "Torsdag";
        break;
case 'Friday':
        echo "Fredag";
        break;
case 'Saturday':
        echo "Lørdag";
        break;
case 'Sunday':
        echo "Søndag";
        break;
}

echo $dag; //Skriver ut hvilken dag det er på norsk.
?>
Rett meg hvis jeg har feil
Sist endret av boblesaft; 22. desember 2007 kl. 01:22.
1. Fordi case ikke er et tall, må du ha den som en string: case 'Friday':
2. Hvorfor blande inn en stor switch når dette enkelt kan løses ved èn line med array?

Desutten skriver han at han allerede har løst det.
ma10as:
siden ingen hadde nevnt noe med switch, som fulloggal sier han har lest i en bok så skader det vel ikke å få det opp også.
Jeg synes switch er minst like enkelt som din løsning i arrays, dog er din løsning litt kortere og kanskje mer korrekt
Sist endret av boblesaft; 22. desember 2007 kl. 01:42.
<?php echo 'VIF'; ?>
datagutten's Avatar
Hvis det du er ute etter er å få datofunksjonene i php til returnere norske måneder, kan dette løses enkelt med setlocale()
Trigonoceps occipita
vidarlo's Avatar
Donor
Hør på ma10as eller datagutten, det er einaste vettuge forslaga som har komt. Switch er ugly bugly og uoversiktlig løsning.

Om eg hadde bruk for det hadde eg benytta meg av ma10as si løsning, og laga ein funksjon av det, som returnerte datoen formatert på norsk, ut fra timestamp inn elns.
19.........bokstaver
bavarai's Avatar
Jepp, mitt forslag er dårligere en både ma10as og datagutten sitt. Men jeg kan ikke Array, men visste det kunne lages ved Array.
Gåte: Hvor mange nFF-n00bs trengs for å besvare et høyst grunnleggende og elementært php-programmeringsspørsmål?

Tydligvis alle.
Alle har vel sin måte å gjøre det på, noen av de har blitt nevnt nå. Og det er vel bare lærerikt å se hvordan andre gjør det og lese dens kode
Sist endret av boblesaft; 22. desember 2007 kl. 16:09.
Kun fordi alle har forslag har jeg også et, slik at han kan benytte seg av en funksjon som endrer "date"-paramterene slik han absolutt vil bruke den...

Kode

<?php

/**
 * Function to translate date(l d.m.y) to norwegian
 * @param string $date
 * @return mixed
*/

function NorwegianDate ($date) {
    
    $weekdays = array('', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag', 'Søndag');
    
    $posistion = strpos($date, ' ');
    
    $waste = substr($date, 0, $posistion);
    
    $rest = trim(substr($date, $posistion));
    
    $timestamp = strtotime($rest);
    
    $today = date('N', $timestamp);
    
    return ( isset($weekdays[$today]) ) ? $weekdays[$today] . ' ' . $rest : $date;
    
}

// Get date
$date = date('l d.m.Y ');

// Use the function above to translate
echo NorwegianDate($date);

?>
Selv om jeg ville gått for noe slik som

Kode

<?php

/**
 * Function to add weekday name to date
 * @param string $date
 * @return mixed
*/

function NorwegianDate ($date) {
    
    $weekdays = array('', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag', 'Søndag');
    
    $timestamp = strtotime($rest);
    
    $today = date('N', $timestamp);
    
    return ( isset($weekdays[$today]) ) ? $weekdays[$today] . ' ' . $rest : $date;
    
}

// Get date
$date = date('d.m.Y');

// Use the function above to add weekday
echo NorwegianDate($date);

?>
... Eller egentlig ville jeg benyttet med at et timestamp, siden det er så enkelt å endre formatet på i ettertid
Sitat av datagutten
Hvis det du er ute etter er å få datofunksjonene i php til returnere norske måneder, kan dette løses enkelt med setlocale()
Vis hele sitatet...
Hør på denne mannen, jeg skjønner ikke hvorfor dere i det hele tatt vurderer str_replace.

Praktisk eksempel:

Kode

<?php
setlocale(LC_ALL, 'no_NO');

echo strftime("%A %e. %B %Y", mktime(0, 0, 0, 12, 23, 2007));
?>
søndag 23. desember 2007
▼ ... flere år senere ... ▼
Ikke sånn for å dra opp en 10 år gammel tråd men :P

Noen som har en løsning på bruk av setlocale med æøå visning? Søndag blir med �

UTF-8
Sist endret av Xp0sed; 29. mars 2017 kl. 20:31.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av Xp0sed Vis innlegg
Ikke sånn for å dra opp en 10 år gammel tråd men :P

Noen som har en løsning på bruk av setlocale med æøå visning? Søndag blir med �

UTF-8
Vis hele sitatet...
Problemet er at php og resten bruker ulike charsets. Sender du UTF-8 som charset-type?
locale og encoding er to forskjellige ting. Se på utf8_encode / utf8_decode
Sitat av Xp0sed Vis innlegg
Ikke sånn for å dra opp en 10 år gammel tråd men :P

Noen som har en løsning på bruk av setlocale med æøå visning? Søndag blir med �

UTF-8
Vis hele sitatet...
Du må fortelle nettleseren hvilken encoding du bruker, dette gjøres ved å kalle på header() funksjonen før noe er sendt.

Sett denne linjen helt i starten av PHP scriptet ditt:

Kode

header("Content-Type: text/html; charset=utf-8");
Du trenger ikke, men jeg ville også ha lagt inn følgende linje i <head>-delen av HTML dokumentet.

Kode

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Eller (Hvis du bruker HTML5 som doctype):

Kode

<meta charset="utf-8" />
Fordelen med å definere charset encoding som <meta> tag i tillegg, er at nettleseren har «backup» hvis ikke charset encoding er definert andre plasser, f.eks hvis man åpner html filen direkte i nettleseren. I tillegg gir det også nyskjerrige webutviklere informasjon om hvilken encoding nettsiden bruker hvis dem analyserer HTML kildekoden.
Sist endret av 0xFF; 30. mars 2017 kl. 10:06.
Sitat av 0xFF Vis innlegg
Du må fortelle nettleseren hvilken encoding du bruker, dette gjøres ved å kalle på header() funksjonen før noe er sendt.

Sett denne linjen helt i starten av PHP scriptet ditt:
Vis hele sitatet...
Hjelper ikke å si at innholdet man sender ut er kodet i UTF-8 når det egentlig er Latin1.