Avatar billede mrjowns Novice
02. januar 2017 - 09:47 Der er 29 kommentarer og
1 løsning

Newbie: Konvertering af dato

Først og fremmest: Jeg ved meget lidt om PHP.

Jeg har lavet nogle 'custom fields' i WordPress og vil udskrive en dato i en fil. Så jeg skriver: <?php the_field('udlobsdato'); ?>

Output: 20171231

Jeg har forsøgt at konvertere datoen på alle mulige måder med eksempler jeg kunne finde online, men intet har virket.

Ville blive meget taknemmelig for noget hjælp! :-)
Avatar billede michael_stim Ekspert
02. januar 2017 - 10:14 #1
Output? Er det det format du vil have?

Noget á la dette:

date("Ymd",strtotime(the_field('udlobsdato')));
Avatar billede mrjowns Novice
02. januar 2017 - 11:05 #2
Tak for dit svar, Michael.

Nej, jeg ønsker datoformatet dd-mm-yyyy. Når jeg udskriver the_field('udlobsdato') giver den yyyymmdd.

Jeg aner ikke hvordan jeg skal få den lavet om...
Avatar billede michael_stim Ekspert
02. januar 2017 - 11:39 #3
date("d-m-Y",strtotime(the_field('udlobsdato')));
Avatar billede mrjowns Novice
02. januar 2017 - 11:45 #4
Er der noget et sted i WordPress der kan "overskrive" din kommando? For resultatet er stadig: 20171231

Jeg har skrevet: <?php date("d-m-Y",the_field('udlobsdato')); ?>
Avatar billede michael_stim Ekspert
02. januar 2017 - 11:55 #5
Hvor får du datoen fra?
Avatar billede michael_stim Ekspert
02. januar 2017 - 11:56 #6
Er det en datepicker?
Avatar billede mrjowns Novice
02. januar 2017 - 12:04 #7
Hmmm, den kommer vel fra MySQL-databasen formoder jeg. Jeg har oprettet 'Custom Fields' ved hjælp af plugin'et "Advanced Custom Fields". Jeg har forsøgt at ændre den til en string (array) og derefter splitte den op og udskrive den. Men det ved jeg bare ikke nok om PHP til at gøre...
Avatar billede mrjowns Novice
02. januar 2017 - 13:12 #8
Ja, det er en datepicker...
Avatar billede michael_stim Ekspert
02. januar 2017 - 13:16 #9
Så står der sikkert i dokumentationen for den datepicker hvordan man ändrer format.
Avatar billede mrjowns Novice
02. januar 2017 - 13:45 #10
Kan du ikke hjælpe mig med at lægge the_field('udlobsdato') i en string-variabel og så splitte den så den får formatet dd-mm-yyyy? :-)
Avatar billede michael_stim Ekspert
02. januar 2017 - 13:52 #11
Det hjälper ikke hvis datepicker er sat til et vist format. Hvilken datepicker bruger du?
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:03 #12
Men i PHP kunne man f ex göre sådan her:
function date_format($date) {

    $year = substr($date, 0, 4);
    $month = substr($date, 4, 2);
    $day = substr($date, -2)

    $return_date = $day."-".$month."-".$year;

    return $return_date;

}

echo date_format(the_field('udlobsdato'));
Avatar billede mrjowns Novice
02. januar 2017 - 14:21 #13
Parse error: syntax error, unexpected '$return_date' (T_VARIABLE) in xxx.php on line 30

Linje 30: $return_date = $day."-".$month."-".$year;
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:24 #14
Glemte et semikolon:  $day = substr($date, -2);
Avatar billede mrjowns Novice
02. januar 2017 - 14:27 #15
Fatal error: Cannot redeclare date_format() in xxx.php on line 34

linje 34: }
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:32 #16
Pröv at döbe functionsnavnet om. F ex custom_date_format og glem ikke at ändre i kaldet også.
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:33 #17
date_format er jo allerede en PHP-funktion, burde jeg have tänkt på.
Avatar billede mrjowns Novice
02. januar 2017 - 14:36 #18
Fåååck jeg fatter det ikke... Nu har jeg indsat følgende:

function babbalabba($date) {

    $year = substr($date, 0, 4);
    $month = substr($date, 4, 2);
    $day = substr($date, -2);

    $return_date = $day."-".$month."-".$year;

    return $babbalabba;

}

echo babbalabba(the_field('udlobsdato'));

Det giver INGEN fejl, men...

Output: 20171231

Den reagerer overhovedet ikke på scriptet??? Hvad kan det skyldes?
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:37 #19
Kig på #11
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:38 #20
return $babbalabba;

Skal ikke ändres, du har jo ikke en variabel der hedder sådan.
Avatar billede mrjowns Novice
02. januar 2017 - 14:46 #21
function babbalabba($date) {

    $year = substr($date, 0, 4);
    $month = substr($date, 4, 2);
    $day = substr($date, -2);

    $return_date = $day."-".$month."-".$year;

    return $return_date;

}

echo babbalabba(the_field('udlobsdato'));

Output: 20171231--
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:48 #22
Igen, kig på #11
Avatar billede mrjowns Novice
02. januar 2017 - 14:53 #23
Huh? Altså hvor der står: return $return_date;

Er det forkert?
Avatar billede michael_stim Ekspert
02. januar 2017 - 14:55 #24
Den 11. kommentar i denne tråd.
Avatar billede mrjowns Novice
02. januar 2017 - 15:04 #25
Ahhh... Jeg ved ikke rigtig hvordan jeg skal se hvilken datepicker det er. I HTML-koden står der "ui-datepicker". Siger det dig noget?
Avatar billede michael_stim Ekspert
02. januar 2017 - 15:14 #26
Är det inte ett WP-plugin?
Avatar billede michael_stim Ekspert
02. januar 2017 - 15:22 #27
Hov, nu blev det svensk :-D

Ellers må du nok finde din jQuery og ändre der:

http://api.jqueryui.com/datepicker/#option-dateFormat
Avatar billede mrjowns Novice
02. januar 2017 - 15:22 #28
Nej... Jeg har installeret plugin'et "Advanced Custom Fields". Det er det plugin jeg bruger til at oprettet datofeltet ... sammen med alle mulige andre felter. Giver det mening?
Avatar billede michael_stim Ekspert
02. januar 2017 - 15:25 #29
Det har dato format. Kig på billedet:

https://www.advancedcustomfields.com/resources/date-picker/
Avatar billede mrjowns Novice
02. januar 2017 - 16:00 #30
WOW!!!! Tusinde tak, Michael!! Det havde jeg aldrig selv fundet ud af! You saved my day!!
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