Pagina 1 di 2
data e mesi [RISOLTO]
Inviato: 12/09/2003, 20:28
da franz
come si fa a modificare la data in modo tale che appaia nel formato gg/mm/aaaa?
per i mesi? da inglese->italiano
osc2.2m2+ita
grazie!!!
Inviato: 13/09/2003, 10:02
da giobertox
come aveva detto un cert blk
su che piattaforma hai installato il sito?
io usando una Debian 3.0 ho come valore it_IT@euro
Questo parametro lo setti nel file /catalog/lincludes/languages/italian.php
cerchi la riga
setlocale(LC_TIME, 'it_IT@euro');
e cambi il valore in base a come e' settato sul tuo server.
solo che non va tutto tutto a posto.
Infatti comincia a visualizzare le date in italiano(già buona cosa) sia come parole che come posizioni, ma quando le richiede in scrittura il controllo viene ancora fatto mese/giorno/anno . Almeno questo succede a me
Sto vedendo come si puo fare ..se intanto qualcuno ha idee.. benvenga
Inviato: 13/09/2003, 13:16
da BluEdoG
??por que?
Inviato: 15/09/2003, 10:01
da giobertox
BluEdoG ha scritto:prova con
?? a che pro??
questo era il valore che esisteva gia da prima, di default.
e va bene se si decide di mettere le date mese/giorno /anno
ma noi stiamo parlando di poter sia leggere le date in italiano
(lunedi al posto di monday )
sia immettere le date in maniera giorno/mese /anno
non penso sia sufficiente (per entrambe le cose ) cambiare quel valore.
Altri suggerimenti?
Re: ??por que?
Inviato: 15/09/2003, 10:42
da BluEdoG
dunque, per modificare la data in gg/mm/aaaa lo devi fare modificando all'occorrenza il file di linguaggio (che dovrebbe essere già giusto) italian.php
Codice: Seleziona tutto
@setlocale(LC_TIME, 'it_IT.ISO8859-1');
define('DATE_FORMAT_SHORT', '%d/%m/%Y'); // this is used for strftime()
define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime()
define('DATE_FORMAT', 'd/m/Y'); // this is used for date()
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');
in pratica non dovreste aver riscontrato problemi... se poi volete che anche in inglese le date siano uguali all'italiano dovete fare le modifiche di conseguenza.
Re: ??por que?
Inviato: 15/09/2003, 11:03
da giobertox
BluEdoG ha scritto:dunque, per modificare la data in gg/mm/aaaa lo devi fare modificando all'occorrenza il file di linguaggio (che dovrebbe essere già giusto) italian.php
in pratica non dovreste aver riscontrato problemi... se poi volete che anche in inglese le date siano uguali all'italiano dovete fare le modifiche di conseguenza.
ho fatto come dici e mi MOSTRA le date in italiano
(cosa che mi faceva anche col valore che avevo messo prima
setlocale(LC_TIME, 'italian');
il fatto è che IN SCRITTURA prende solo date mm/gg/anno
(ad esempio moificando i dati cel cliente o iscrivendo un nuovo cliente)
ciao
Re: ??por que?
Inviato: 15/09/2003, 11:47
da BluEdoG
giobertox ha scritto:
il fatto è che IN SCRITTURA prende solo date mm/gg/anno
(ad esempio moificando i dati cel cliente o iscrivendo un nuovo cliente)
beh in scrittura è ovvio, da quello che so io è un passaggio obbligato per scrivere sul db (per convenzione presumo). Anche le cifre hanno una anomalia, la virgola indica le migliaia (per noi il punto) mentre viceversa il punto indica i decimali.
Poi pero' quando vengono ripescati i dati, tutte le date e cifre vegono tradotte in base a quanto scritto nel file italian.php (sia per admin che per catalog). Mi pare che nei siti che ho fatto tutte le date siano nel formato corretto.
Re: ??por que?
Inviato: 15/09/2003, 11:53
da giobertox
beh in scrittura è ovvio, da quello che so io è un passaggio obbligato per scrivere sul db (per convenzione presumo). Anche le cifre hanno una anomalia, la virgola indica le migliaia (per noi il punto) mentre viceversa il punto indica i decimali.
Poi pero' quando vengono ripescati i dati, tutte le date e cifre vegono tradotte in base a quanto scritto nel file italian.php (sia per admin che per catalog). Mi pare che nei siti che ho fatto tutte le date siano nel formato corretto.
ok , allora se è obbligato , lo lascio cosi
(anche per evitare troppi casini con aggiunta di altri moduli.)
grazie
Re: ??por que?
Inviato: 15/09/2003, 13:33
da BluEdoG
Probabilmente, anzi sicuramente, puoi modificare le date nel formato italiano direttamente sul mysql, (e di conseguenza scrivere nel formato giusto) ma poi c'è sempre il rischio di "scontrarsi" con altre contribution che usano il formato originale.
Inviato: 01/10/2003, 15:46
da John
Ciao ragazzi, visto che in questo mese ho 'scroccato' un po' di info da voi, ora posto un po' di farina del mio sacco per risolvere il problema della data in 'formato anglosassone' per intenderci (sperando che non fosse già stato risolto in qualche modo).
Premetto che lavoro su OsC 2.2 MS1.
in
admin:
----------------------------------------------------
customers.php
intorno alla riga 30
Codice: Seleziona tutto
$sql_data_array = array('customers_firstname' => $customers_firstname,
'customers_lastname' => $customers_lastname,
'customers_email_address' => $customers_email_address,
'customers_telephone' => $customers_telephone,
'customers_fax' => $customers_fax,
'customers_newsletter' => $customers_newsletter);
if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $customers_gender;
#if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($customers_dob);
if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = substr(tep_date_raw($customers_dob), 0, 4) . substr(tep_date_raw($customers_dob), 6, 2) . substr(tep_date_raw($customers_dob), 4, 2);
Codice: Seleziona tutto
tep_db_perform(TABLE_CUSTOMERS, $sql_data_array, 'update', "customers_id = '" . tep_db_input($customers_id) . "'");
--------------------------------------------------------------------------
in
catalog:
----------------------------------------------------
create_account_process.php
account_edit_process.php
intorno alla riga 65
Codice: Seleziona tutto
if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
$error = true;
$entry_lastname_error = true;
} else {
$entry_lastname_error = false;
}
if (ACCOUNT_DOB == 'true') {
#if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4))) {
if (checkdate(substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 0, 4))) {
intorno alla riga 260
Codice: Seleziona tutto
$sql_data_array = array('customers_firstname' => $firstname,
'customers_lastname' => $lastname,
'customers_email_address' => $email_address,
'customers_telephone' => $telephone,
'customers_fax' => $fax,
'customers_newsletter' => $newsletter,
'customers_password' => tep_encrypt_password($password),
'customers_default_address_id' => 1);
if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $gender;
#if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($dob);
if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = substr(tep_date_raw($dob), 0, 4) . substr(tep_date_raw($dob), 6, 2) . substr(tep_date_raw($dob), 4, 2);
-----------------------------------------------------------------------
Ovviamente occorrerà poi andare a correggere i file con le traduzioni , dove si riporta un esempio di data.
Ciao!
Inviato: 02/10/2003, 21:45
da hozone
bene! scrivi un topic con l'intestazione
data e mesi in formato italiano [RISOLTO]
mi raccomando
Inviato: 19/11/2003, 13:52
da VideoVideoDoc
La funzione checkDate va modificata anche in /admin/costumer.php
Inviato: 27/11/2003, 18:18
da CyberWolf
Salve a tutti...
Sto usando osCommerce 2.2MS2...
In italian.php ho visto che c'e' una funzione tep_date_raw (che e' la stessa che ho visto elencata nella patch qua sopra).
Mi son chiesto: ma come mai la mettono li' nel file della lingua? Sara' mica quella da modificare per cambiare il formato da mmddyyyy in ddmmyyyy anche nell'inserimento?
Cercando un po' su internet ho trovato qualcuno che suggeriva di cambiare la funzione da
Codice: Seleziona tutto
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 0, 2) . substr($date, 3, 2);
}
}
a qualcosa tipo
Codice: Seleziona tutto
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
}
}
Ho provato e la cosa pare funzionare... Riesco a registrare gli utenti usando il formato italiano per la data...
Secondo voi la cosa succede per miracolo (tipo perche' in realta' non ho il locale it_IT.ISO8859-1 installato sul mio computer, o roba simile) oppure la cosa ha un senso ed e' affidabile?
Giusto per evitare di ritrovarmi tutti i dati "rovinati" (non era il termine che avrei voluto usare.. )
Grazie, ciao!
Andrea
Inviato: 27/11/2003, 18:35
da giobertox
Ho provato e la cosa pare funzionare... Riesco a registrare gli utenti usando il formato italiano per la data...
Secondo voi la cosa succede per miracolo (tipo perche' in realta' non ho il locale it_IT.ISO8859-1 installato sul mio computer, o roba simile) oppure la cosa ha un senso ed e' affidabile?
Giusto per evitare di ritrovarmi tutti i dati "rovinati" (non era il termine che avrei voluto usare.. )
Grazie, ciao!
Andrea
no, funziona e stop .
mi ero dimenticato di cercare cmoe avevo risolto io
quindi ribadisco , facendo come hai appena detto poi funziona tutto senza prob
basta cambiare entrambe le pagine italian.php (anche la parte admin) e poi non serve fare altro
Codice: Seleziona tutto
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
}
}
ora penso proprio si possa dire che il prob data italiana è RISOLTO
da dove scrivi linuxaro?
[/code]
Inviato: 27/11/2003, 18:56
da CyberWolf
no, funziona e stop .
mi ero dimenticato di cercare cmoe avevo risolto io
quindi ribadisco , facendo come hai appena detto poi funziona tutto senza prob
basta cambiare entrambe le pagine italian.php (anche la parte admin) e poi non serve fare altro
Benissimo! Grazie della info. Anche perche' mi ero dimenticato di modificare anche la parte admin, ehm!
ora penso proprio si possa dire che il prob data italiana è RISOLTO
da dove scrivi linuxaro?
Acc, l'avatar che mi metto nei forum mi tradisce subito!
Per paranoia e per evitare di impestare il thread con cose inutili, ti mando un PM...
Ciao,
Andrea