Avatar billede brianmilan Juniormester
06. marts 2019 - 19:54 Der er 7 kommentarer og
1 løsning

Konverterer date i MySQL til Danske måneder.

Hej Eksperter.
Jeg er ved at blive gråhåret :-)
Jeg har et dato felt i min MySQL database, der f.eks. hedder 1970-12-10 men jeg kan ikke rigtig finde ud af at lave en PHP kode, så der kunne komme til at stå 10. december 1970 - så den kommer ud med danske måneder, kan det godt lade sig gøre?

Venlig hilsen
Brian :-).
Avatar billede arne_v Ekspert
07. marts 2019 - 02:09 #1
setlocale and strftime
Avatar billede arne_v Ekspert
07. marts 2019 - 02:29 #2
Demo:


<?php
date_default_timezone_set('MET');
//setlocale(LC_ALL, 'da_DK'); // *nix
setlocale(LC_ALL, 'dan_DNK'); // windows
$t = time();
//echo strftime('%e %B %Y', $t) . "\r\n"; // *nix
echo strftime('%d %B %Y', $t) . "\r\n"; // windows
?>
Avatar billede brianmilan Juniormester
07. marts 2019 - 15:22 #3
Hej Arne.
Mange tak for dit svar. Jeg kunne vel ikke få dig til at skrive hvordan jeg får sat min variabel ind i din kode, jeg har selv prøvet men den skriver 01. januar 1970, så jeg gør et eller andet galt.

Min variabel hedder $blu_ray_dato

Venlig hilsen
Brian.
Avatar billede arne_v Ekspert
07. marts 2019 - 18:17 #4
strftime forventer et timestamp

Maaske strtotime($blu_ray_dato) vil give det rigtige timestamp.
Avatar billede brianmilan Juniormester
08. marts 2019 - 15:03 #5
Hej Arne.
Mange tak for hjælpen, nu virker det :-)

date_default_timezone_set('MET');
//setlocale(LC_ALL, 'da_DK'); // *nix
setlocale(LC_ALL, 'dan_DNK'); // windows
   
    $t = strtotime($dvd_bluray_premieredato);
//echo strftime('%e %B %Y', $t) . "\r\n"; // *nix
$dvd_bluray_pdato = strftime('%e. %B %Y', $t); // windows
    echo "$dvd_bluray_pdato";
Avatar billede brianmilan Juniormester
08. marts 2019 - 16:38 #6
Hej igen Arne.

Jeg har lige opdaget, at hvis ikke jeg har indtastet nogen premiere dato i $dvd_bluray_premieredato så skriver den 1. januar 1970, kan du evt. se hvad jeg har gjort forkert?

Venlig hilsen
Brian.

date_default_timezone_set('MET');
//setlocale(LC_ALL, 'da_DK'); // *nix
setlocale(LC_ALL, 'dan_DNK'); // windows
   
$t = strtotime($dvd_bluray_premieredato);
//echo strftime('%e %B %Y', $t) . "\r\n"; // *nix
$dvd_bluray_premieredato = strftime('%e. %B %Y', $t); // windows
Avatar billede arne_v Ekspert
08. marts 2019 - 16:52 #7
$t = strtotime($dvd_bluray_premieredato);
$dvd_bluray_premieredato = strftime('%e. %B %Y', $t);

->

$t = strtotime($dvd_bluray_premieredato);
if($t > 0) {
    $dvd_bluray_premieredato = strftime('%e. %B %Y', $t);
} else {
    $dvd_bluray_premieredato = 'Ukendt';
}

eller

if(strlen($dvd_bluray_premieredato) > 0) {
    $t = strtotime($dvd_bluray_premieredato);
    $dvd_bluray_premieredato = strftime('%e. %B %Y', $t);
} else {
    $dvd_bluray_premieredato = 'Ukendt';
}
Avatar billede brianmilan Juniormester
08. marts 2019 - 20:47 #8
Hej Arne.
Det virker perfekt med:

if(strlen($dvd_bluray_premieredato) > 0) {
    $t = strtotime($dvd_bluray_premieredato);
    $dvd_bluray_premieredato = strftime('%e. %B %Y', $t);
} else {
    $dvd_bluray_premieredato = 'Ukendt';
}

Tusinde tak for hjælpen :-)
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

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