esiste un modo di riutilizzare la funzione di formattazione della data di php ('date') con stringhe in italiano p.es. Lun invece di Mon (senza farlo biella e manovella, s'intende...) ?
esiste un modo di riutilizzare la funzione di formattazione della data di php ('date') con stringhe in italiano p.es. Lun invece di Mon (senza farlo biella e manovella, s'intende...) ?
http://express.altervista.org
Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.
$settimana = array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab");
echo date('$settimana[w]');
Devi provare una soluzione del genere...
Ciao! :D
guarda-> http://www.phpnews.it/content/view/139/86/ ti consiglio il terzo metodo
non c'è un modo per stabilire che stringhe vengono accettate da setlocale?
(anche se non in automatico, per lo meno sui server che ospitano i siti di av, anche se, ovviamente, meglio in automatico)
Ultima modifica di express : 28-09-2005 alle ore 16.54.58
http://express.altervista.org
Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.
ma sono array che vanno a sostituirsi a quelli inglesi automatici , no capisco cosa intendi per setlocale
ehm... setlocale dipende dal sistema operativo nel quale viene eseguito... se provi a fare setlocale(LC_ALL, "it_IT") su un sistema windows ci sono ottime probabilità che non funzioni, mentre un "ita" può funzionare su windows ma non su un sistema linux (dipende...) e un "it" potrebbe funzionare su entrambe come su nessuno dei due.
in ogni caso mi sono "sprecato" : a scrivere questa funzioncina, spero vi piaccia
se poi le stringhe sono per l'inserimento diretto in html magari sostituirei gli accenti con le html entities appropriateCodice PHP:
<?
// Convert date to 'lang' date
// only italian is supported for now
if (!function_exists("strftime_lang")) {
function strftime_lang($format, $date, $lang="en") {
if ($lang == "it") {
$a_month_long = array("", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");
$a_month_short = array("", "gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic");
$a_weekday_long = array("domenica", "lunedi`", "martedi`", "mercoledi`", "giovedi`", "venerdi`", "sabato");
$a_weekday_short = array("dom", "lun", "mar", "mer", "gio", "ven", "sab");
if (strpos($format, "%a") !== FALSE) {
$format = str_replace("%a", $a_weekday_short[(int) strftime("%w", $date)], $format);
}
if (strpos($format, "%A") !== FALSE) {
$format = str_replace("%A", $a_weekday_long[(int) strftime("%w", $date)], $format);
}
if (strpos($format, "%b") !== FALSE) {
$format = str_replace("%b", $a_month_short[(int) strftime("%m", $date)], $format);
}
if (strpos($format, "%B") !== FALSE) {
$format = str_replace("%B", $a_month_long[(int) strftime("%m", $date)], $format);
}
}
$format = strftime($format, $date);
return $format;
}
}
?>
Ultima modifica di express : 28-09-2005 alle ore 18.13.31
http://express.altervista.org
Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.
mi sa che non ti conviene ricavare la lingua così, perché tanti sono all'estero oppure hanno il browser ingelse, io uso questo...ci aggiungo anche qualche if sull'ora tipo buongiorno buonanotte..ma ora non lo trovo..
Stampa:
Oggi è Mercoledì 28 Settembre
Codice PHP:
<?php
$giorno_corrente = date("j");
$mese_corrente = date("n");
$giorno_sett = date("w");
$mesi = array(1=>"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");
$giorni = array("Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato");
echo " Oggi è ".$giorni[$giorno_sett]." ".$giorno_corrente." ".$mesi[$mese_corrente];
?>
beh, quella è una semplice funzione, la chiami utilizzando come ultimo parametro "it" e va alla grande, indipendentemente dal browser...
è implementata solo l'opzione in italiano e quella in "inglese" (in realtà quella che utilizza il setlocale corrente).
cmq senza nulla togliere alle soluzioni proposte io continuo a preferire la mia
@nix82 io fossi in te riguarderei un attimo il codice del tuo script
è decisamente poco elegante... meglio:Codice PHP:
$numero_giorno = date("d");
//nel caso di giorni che siano inferiori al 10 leviamo lo zero davanti
if($numero_giorno{0} == 0 || $numero_giorno{0} == '0') {
$numero_giorno = $numero_giorno{1};
}
eppoi sui nomi dei mesi, a scanso di equivoci, se lo devi mettere direttamente su html è meglio utilizzare html entities invece dei caratteri accentati...Codice PHP:
$numero_giorno = date("j");
http://express.altervista.org
Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.
Ok dopo guardo e casomai correggo ;)
sarà perché in questo momento ho mia figlia all'estero che usa un pc inglese che preferisco questo codice...cmq non sono cose importantissime secondo me..uno vale l'altro...il mio funziona cmq, tra l'altro io programmo in locale con window e così il tuo non funziona su window anche se poi sul server di av fungeOriginalmente inviato da express
veramente funziona anche in locale su windows...
per quel che ne so, funziona dappertutto...
il punto è che sta a te richiedere la conversione "it" o quel-che-ti-pare-a-te (basta che la implementi).
praticamente, invece di utilizzare strftime() utilizzi la funzione che ho scritto io: se non gli passi parametri aggiuntivi, il comportamento è lo stesso; se invece come terzo parametro gli passi "it" allora ti fa la conversione "it" (l'unica implementata).
da dove poi il programmatore si vada a pescare "it", non è affare della funzione ed qui che al limite uno può dover aggiustare secondo il proprio sito... se lo ha multilingue, gli passerà una variabile, se lo ha solo in italiano basta passare la stringa costante "it".
piccola osservazione: date() e strftime() sono parenti molto stretti. date è figlia del perl, strftime figlia del C. lo script che ho scritto si può anche riscrivere con date (che però ha subito qualche modifica da php 4 a php 5, mentre strftime non ha ragione di cambiare ed è per questo che io ho scelto quest'ultimo)
http://express.altervista.org
Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.
$settimana = array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab");
echo date('$settimana[w]');
dovrebbe funzionare ............ciao
allora...questi 3 qui:
setlocale(LC_TIME, 'it_IT');
echo strftime("%A %d %B %Y");
echo" <hr>";
setlocale(LC_TIME, 'it');
echo strftime("%A %d %B %Y");
echo" <hr>";
setlocale(LC_TIME, 'ita');
echo strftime("%A %d %B %Y");
su linux mi da italiano in tutti e 3, su window mi da italiano solo gli ultimi 2.
io ti consiglio
eregi_replace
in questo modo:
$data = date("formattazione");
$data = eregi_replace("Mon","Lun",$data);
//e cosi via
//poi
print($data);
Ciaoo!!
sì senza array ? così invece che 2 righe ne deve scrivere 14Originalmente inviato da Leo91