Convertire il formato della data di un campo personalizzato

14 mar 2011, 22:06:00
Visualizzazioni: 24.7K
Voti: 1

Sto utilizzando il plugin More Fields che mi dà la possibilità di creare una data nel formato YYYY/mm/dd e vorrei convertirla per mostrarla come: February 11, 2011

È possibile?

0
Tutte le risposte alla domanda 3
6

Hai problemi con la conversione esatta o il recupero? La conversione è banale ed è semplice PHP:

date('F j, Y', strtotime($date));

Per un modo più complesso e specifico per WordPress con supporto alla localizzazione, consulta la funzione date_i18n().

14 mar 2011 22:53:30
Commenti

Rarst, sembra corretto ma ho difficoltà a farlo funzionare al 100%.
$date = meta('event_date'); echo date('F j, Y', strtotime($date)); restituisce January 1 1970.... qualche idea?

tjsherrill tjsherrill
16 mar 2011 00:35:16

@tjsherrill ehm, non credo che meta() sia una funzione nativa... Sei sicuro di ottenere un valore stringa valido in $date?

Rarst Rarst
16 mar 2011 00:40:29

Ho risolto, meta(); è un tag del template fornito dal plugin more-fields. Ho semplicemente usato get_post_meta e funziona perfettamente. grazie

tjsherrill tjsherrill
18 mar 2011 17:28:27

Non funziona per me. Il mio campo personalizzato è "date-time-last" $date = get_post_meta('date-time-last'); echo date('l jS F Y', strtotime($date));

Pete Pete
11 apr 2016 11:59:27

@Pete controlla i valori che stai ottenendo e simili, "non funziona" è un po' vago. :)

Rarst Rarst
11 apr 2016 12:29:46

Scusa per la vaghezza, me ne sono accorto solo dopo la mia 5a modifica quindi non potevo più aggiornarlo... Continuavo a ottenere "1 gennaio 1970". In ogni caso ho trovato una soluzione che funziona... <?php $date = get_post_meta($post->ID, 'date-time-last', true); if($date != ''){echo date("l jS F Y", strtotime($date));} ?>

Pete Pete
11 apr 2016 12:50:15
Mostra i restanti 1 commenti
0

Questo funziona per me (all'interno del loop)...

<?php $date = get_post_meta($post->ID, 'CUSTOM-FIELD-HERE', true); if($date != ''){echo date("l jS F Y", strtotime($date));} ?>
11 apr 2016 15:22:28
0
<?php
$date = '2000/10/28';
// Divide la stringa della data usando '/' come delimitatore
$a = preg_split ( '/\//', $date );
// Converte l'array in timestamp e formatta la data in formato esteso
echo date('F j, Y', mktime( 0, 0, 0, $a[1], $a[2], $a[0] ) );
14 mar 2011 22:38:47