19. januar 2016 - 20:00
Der er
14 kommentarer og 1 løsning
lave dato til lokal sprog
Jeg har denne her i en while loop: echo date_format(new DateTime($dagsdato_1), 'l d. F - Y'); som giver resultatet: Tuesday 19. January - 2016 og echo $dagsdato_1 bliver til 2016.01.19 men jeg vil rigtig gerne have den i et dansk tekst format Jeg har læst mig frem til at man skal bruge setlocale og strftime eks: setlocale(LC_ALL, 'da_DK'); echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978)); men jeg kan ikke gennemskue hvordan jeg skal lave min sætning om til at passe til mit eksempel fra while loop. Nogen der kan guide mig den rigtige vej.
Annonceindlæg fra Delegate
19. januar 2016 - 20:08
#1
proev: echo strftime("%A %d %B %Y", (new DateTime($dagsdato_1))->getTimestamp());
19. januar 2016 - 20:37
#2
Den vil den ikke lege med syntax error, unexpected T_OBJECT_OPERATOR
19. januar 2016 - 20:42
#3
hvis det giver bedre mening så modificeres $dagsdato_1 i slutningen af whlie loop'en: $dagsdato_1 = date("Y-m-d", strtotime($i++." day", strtotime($dagsdato))); måske det roder med formatet?
19. januar 2016 - 20:52
#4
<?php //setlocale(LC_ALL, 'da_DK'); // *nix setlocale(LC_ALL, 'dan_DNK'); // windows $dagsdato_1 = '2016/01/19'; echo strftime("%A %d %B %Y", (new DateTime($dagsdato_1))->getTimestamp()); ?> virker her
19. januar 2016 - 20:56
#5
Kunne løsningen ikke bare være: $datoEN = explode(".", $dagsdato_1); $dagsdato_1 = $datoEN[2].'.'.$datoEN[1].'.'.$datoEN[0];
19. januar 2016 - 21:23
#6
Arne, har prøvet at isætte kun din kode og selv her kommer fejlen Parse error: syntax error, unexpected T_OBJECT_OPERATOR #nemlig den explode gør ikke rigtig noget
19. januar 2016 - 21:28
#7
gammel PHP version? proev: $dt = new DateTime($dagsdato_1); echo strftime("%A %d %B %Y", $dt->getTimestamp());
19. januar 2016 - 21:30
#8
explode() splitter din dato i 3 sæt. Jeg så dit skilletegn som punktum, men kan se længere nede, at det er bindestreg. $datoEN = explode("-", $dagsdato_1); $dagsdato_1 = $datoEN[2].'-'.$datoEN[1].'-'.$datoEN[0]; Denne her burde også gøre det, hvis du har bindestreg som skilletegn i datoen: $dagsdato_1 = date('d-m-Y', strtotime("$dagsdato_1"));
19. januar 2016 - 21:40
#9
Den virkede arne. Ja undersøgte det lige. php verion er sat til 5.2. Jeg bør nok ændre den, er bare bange for hvor meget den "ødelægger". hvilken version skal der ændres til? 7.0 eller ældre?
19. januar 2016 - 21:48
#10
men selvom den sagtens kan vise æøå så vises datoen i den kode med ? tegn istedet for ø.
19. januar 2016 - 21:55
#11
Det lyder som et ISO-8859-1 vs UTF-8 problem.
19. januar 2016 - 21:56
#12
Doumentationen for strftime siger i bruger kommentarer: If strange characters are returned use utf8_encode(strftime()) for UTF-8 characters
19. januar 2016 - 21:59
#13
hmm det skulle jeg ellers have løst tidligere. for den kan sagtens vise alle andre æøå. nå men det må jeg rode med. takker, svar og du får point. Ændrede forresten til php 7 og der var ikke nogen problemer.
19. januar 2016 - 22:01
#14
svar
19. januar 2016 - 22:15
#15
Takker for den utf8_encode, den virkede. @nemlig, vil gemme den explode sætning kan helt sikkert bruge den senere.
Vi tilbyder markedets bedste kurser inden for webudvikling