Avatar billede Claus Mester
17. juni 2012 - 12:43 Der er 15 kommentarer og
1 løsning

Sidst opdateret

Jeg syntes ikke lige jeg kunne et tidligere spørgsmål der giver løsningen på min udfordring, så derfor endnu et spørgsmål med samme overskrift som mange andre.

I index.php includer jeg "footer.php". I footer.php står følgende:

<?php
$fil = "index.php";
echo "Sidste ændring: " .
date( "D.m.Y", filectime( $fil ) );
?>

Og det skal jo så vise datoen hvor index.php sidst blev ændret. Og det gør den også .. MEN .. den vises således:

Sidste ændring: Sat.06.2012

Jeg ønsker det skal være:

Sidste ændring: Lørdag den 6. juni 2012

Jeg har forsøgt med setlocale som foreslås i et andet spørgsmål, men da koden hentes udenfor index.php og fra en fil der ikke indeholder nogle oplysninger om locale, fejler den.

Hvordan får jeg det til at virke?
Avatar billede tintir Nybegynder
17. juni 2012 - 13:07 #1
PHP er kodet til engelsk. Jeg kan ikke huske hvordan man får det til dansk, og om man kan det!
Avatar billede oomalkeoo Nybegynder
17. juni 2012 - 13:09 #2
Det du har prøvet er vel
setlocale(LC_ALL, 'da_DK');


Er det din egen server? Ved du noget mere om serveren? Kan være locale ikke er installeret.

Du kan så overveje om du ikke bare vil lave en funktion der omskriver det?
Avatar billede NielsErikP Mester
17. juni 2012 - 13:28 #3
Hej...

Tror jeg er på trip ;-), men prøv og explode den og så sæt strengen sammen som du vil have du udskrevet.
Avatar billede oomalkeoo Nybegynder
17. juni 2012 - 13:32 #4
Det kan også laves på mange måder, en simpel en er at bruge str_replace, noget ala:
<?php
function daytoday($x) {
  $d = array(0, 1, 2, 3, 4, 5, 6);
  $r = array("Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag");
  return str_replace($d, $r, $x);
}

echo "Sidst ændret: " . daytoday(date('w')) . " den. " . date('j');
?>
Avatar billede oomalkeoo Nybegynder
17. juni 2012 - 13:53 #5
#3 @NielsErikP: Det får jo ikke teksten til at blive et andet sprog ;)
Avatar billede NielsErikP Mester
17. juni 2012 - 14:10 #6
Hej...

@oomalkeoo: Nå.. Det syntes du ikke??



$dato = DATE(D.m.Y, filectime($fil) );

$dato_str = explode(".",$dato);

switch($dato_str[0]) {
    case mon ...
    case tue ...
    ...........
  case sat {
      $dag= "lørdag";
      break;
  }
  osv .. osv.. osv..
}

Avatar billede oomalkeoo Nybegynder
17. juni 2012 - 15:27 #7
Da du kun nævne en explode var det ihvertfald ikke muligt, synes bare dit eksempel bliver meget kode for så lidt, mit kan også sagtens kodes mindre.

Men med en explode og switch, ja så er det også muligt
Avatar billede olebole Juniormester
17. juni 2012 - 16:39 #8
<ole>

Du kunne jo også skrive:

<?php
$fil = 'index.php';
$date_en = date('D d. M. Y', filectime($fil));

$repl = array('Sun'=>'Søndag den', 'Mon'=>'Mandag den', 'Tue'=>'Tirsdag den', 'Wed'=>'Onsdag den', 'Thu'=>'Torsdag den', 'Fri'=>'Fredag den', 'Sat'=>'Lørdag den', 'May'=>'Maj', 'Oct'=>'Okt');
$date_da = strtr($date_en, $repl);

echo $date_da;
?>

/mvh
</bole>
Avatar billede NielsErikP Mester
18. juni 2012 - 00:23 #9
Hej...

@oomalkeoo: Tja.. Der findes jo nok en del løsninger.. er selv i lærestadiet indfor web og php... men må squ nok indrømme der er lidt george gearløs forbundet med mig.. syntes jo bare det at opfinde den dybe igen.. og troen på alt kan lade sig gøre er mok en del af mit virke.

@olebole: Er det så nu, vi skal trække os tilbage master Yoda .. "Smiler"
Avatar billede olebole Juniormester
18. juni 2012 - 00:43 #10
#9: Overhovedet ikke, det er bare forskellige måder at gøre det på - men jeg må indrømme, at jeg er glad for strtr til den slags opgaver  =)

Faktisk er min løsning slet ikke så fiks, for den udskriver månedsnavnet med stort. Det er en fejl ifølge Dansk Retskrivning. Dette ville være mere korrekt:

$fil = 'index.php';
$date_en = date('D d. M. Y', filectime($fil));

$repl = array('Sun'=>'Søndag den', 'Mon'=>'Mandag den', 'Tue'=>'Tirsdag den', 'Wed'=>'Onsdag den', 'Thu'=>'Torsdag den', 'Fri'=>'Fredag den', 'Sat'=>'Lørdag den', 'May'=>'Maj', 'Oct'=>'Okt');
$date_da = strtr($date_en, $repl);
$date_da = ucfirst(strtolower($date_da));

echo $date_da;

Ellers kunne man skrive:

$fil = 'index.php';
$date_en = date('D d. M Y', filectime($fil));

$repl = array('Sun'=>'Søndag den', 'Mon'=>'Mandag den', 'Tue'=>'Tirsdag den', 'Wed'=>'Onsdag den', 'Thu'=>'Torsdag den', 'Fri'=>'Fredag den', 'Sat'=>'Lørdag den',
    'Jan'=>'januar', 'Feb'=>'februar', 'Mar'=>'marts', 'Apr'=>'april', 'May'=>'maj', 'Jun'=>'juni', 'Jul'=>'juli', 'Aug'=>'august', 'Sep'=>'september', 'Oct'=>'oktober', 'Nov'=>'november', 'Dec'=>'december');
$date_da = strtr($date_en, $repl);

echo $date_da;

Så bliver månedsnavnet skrevet ud i fuld længde
Avatar billede NielsErikP Mester
18. juni 2012 - 00:54 #11
Hej...

Ja det har du ganske ret i... iøvrigt er ugedagene også med småt.. men det er vel det du ordner med :


  $date_da = ucfirst(strtolower($date_da));


ikke??

Kunne man ikke også bare :



$repl = array('Sun'=>'søndag den', 'Mon'=> ..etc..

Avatar billede olebole Juniormester
18. juni 2012 - 01:09 #12
Jeg går udfra, det ikke skal bruges midt i en linje, men som det første - og så skal ugedagen stå med stort. Derfor bruger jeg ucfirst.

Skal det hele med småt, skal der stå:

$date_da = strtolower($date_da);

"Kunne man ikke også bare" >> Både og! I første eksempel udnytter jeg det faktum, at de fleste måneders forkortelse er ens på dansk og engelsk. Jeg oversætter derfor kun to månedsnavne og beholder for resten PHP's forkortelser, som står med stort. Ellers skulle jeg have haft alle månederne med.

I andet eksempel har du helt ret - men det forudsætter datoen ikke skrives som det første på linjen eller efter et punktum  =)
Avatar billede NielsErikP Mester
18. juni 2012 - 01:28 #13
Hej...

Så blev jeg så klogere...

"Så jeg bøjer mig i støvet, master Yoda " ;-)
Avatar billede Claus Mester
22. juni 2012 - 13:11 #14
Tusinde tak for jeres engagement.

#10: Det virker perfekt! Hvis du gir svar, gir jeg point.

Tak for hjælpen!
Avatar billede olebole Juniormester
22. juni 2012 - 14:13 #15
Ellers tak, jeg samler ikke point. De må gå til de andre  =)
Avatar billede Claus Mester
23. juni 2012 - 19:19 #16
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester