Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Traduzione di una data (EN > IT)
Forum - PHP - Traduzione di una data (EN > IT)

Avatar
Milmor94 (Normal User)
Rookie


Messaggi: 43
Iscritto: 10/07/2011

Segnala al moderatore
Postato alle 12:28
Domenica, 22/04/2012
Come da titolo, avrei la necessità di tradurre una data in formato [j F Y] (es. 22 April 2012), in italiano. Ovviamente il cambio della lingua nel formato esposto è limitato alla sola traduzione del mese.

Ho provato in diversi modi, tra cui il seguente:
Codice sorgente - presumibilmente Plain Text

  1. <?php
  2. setlocale(LC_TIME, "it_IT");
  3. echo date("j F Y",strtotime(get_post_meta($post->ID, 'data_di_inizio', true)));
  4. ?>


...Ma il risultato è sempre in inglese (es. 22 April 2012)

Grazie in anticipo :)

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 18:41
Domenica, 22/04/2012
prova così

Codice sorgente - presumibilmente Plain Text

  1. setlocale(LC_TIME, "ita");
  2. echo strftime("%d %B %Y");




PM Quote
Avatar
Milmor94 (Normal User)
Rookie


Messaggi: 43
Iscritto: 10/07/2011

Segnala al moderatore
Postato alle 18:57
Domenica, 22/04/2012
Codice sorgente - presumibilmente Plain Text

  1. <?php setlocale(LC_TIME, "ita"); echo strftime("%d %B %Y",strtotime(get_post_meta($post->ID, 'data_di_inizio', true)));?>



Il risultato è sempre in Inglese... (22 April 2012)

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 21:00
Lunedì, 23/04/2012
non so come aiutarti, io all' esecuzione di questo codice
Codice sorgente - presumibilmente Plain Text

  1. <?php
  2.     setlocale(LC_TIME, "ita");
  3.     $data=strtotime("31-12-2011");
  4.     echo strftime("%d %B %Y",$data);
  5. ?>



stampa 31 dicembre 2011

PM Quote
Avatar
Milmor94 (Normal User)
Rookie


Messaggi: 43
Iscritto: 10/07/2011

Segnala al moderatore
Postato alle 22:04
Lunedì, 23/04/2012
Lo stesso codice nel mio caso restituisce 31 December 2011

A questo punto credo che il problema sia il server di Hosting (CVD). :_doubt:

Grazie mille lo stesso!

Ultima modifica effettuata da Milmor94 il 23/04/2012 alle 22:05
PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 22:23
Lunedì, 23/04/2012
una soluzione sarebbe creare un array di corrispondenza dei mesi:
$mesi=array('January'=>'gennaio',...)
splittare la stringa della data, e ricomporla con l' elemento dell' array corrispondente al mese in inglese
un po' macchino ma risolutivo

PM Quote
Avatar
Milmor94 (Normal User)
Rookie


Messaggi: 43
Iscritto: 10/07/2011

Segnala al moderatore
Postato alle 19:51
Martedì, 24/04/2012
Et voilà :)
Codice sorgente - presumibilmente Plain Text

  1. <?php
  2. $mesi = array(1=>'gennaio', 'febbraio', 'marzo', 'aprile',
  3.                 'maggio', 'giugno', 'luglio', 'agosto',
  4.                 'settembre', 'ottobre', 'novembre','dicembre');
  5.  
  6. $giorni = array('domenica','lunedì','martedì','mercoledì',
  7.                 'giovedì','venerdì','sabato');
  8.  
  9. list($sett,$giorno,$mese,$anno) = explode('-',date('w-d-n-Y',strtotime(get_post_meta($post->ID, 'data_di_inizio', true))));
  10.  
  11. echo $giorni[$sett],' ',$giorno,' ',$mesi[$mese],' ',$anno;
  12. ?>



Adesso tutto funziona! (Era per un sistema di gestione degli eventi: http://tinyurl.com/d8t3a6l)
Ri-Grazie :k:

PM Quote