da timestamp a orario locale visitatore

andreto

Utente Attivo
5 Dic 2012
88
0
0
Ciao a tutti,
nel database inserisco le date in formato timestamp.

Mi piacerebbe che qualsiasi visitatore, anche non registrato, possa vedere la data e l'ora di ogni articolo da me scritto in linea col suo fuso orario.

Posso farlo solo con php o devo per forza passare da javascript?

A pensare che questa variabile globale
PHP:
$_SERVER['HTTP_ACCEPT_LANGUAGE']
fornisce la lingua impostata sul browser del visitatore: it-IT

Se solo ci fosse una variabile globale che al posto di dare la lingua dia il paese Europe/Rome, sarei a buon punto.

Questo perchè con
PHP:
date_default_timezone_set('Europe/Rome');
echo date("d/m/Y H:i e",1460407073);
andrei ad impostare il fuso orario del navigatore.

Come mi consigliate di procedere?

Grazie,
Andrea
 

filomeni

Moderatore
Membro dello Staff
MOD
14 Mag 2006
1.054
6
38
53
Roseto degli Abruzzi (TE)
www.sitiweb.cloud
Se scrivi un articolo in data OGGI, la data rimane sempre quella di oggi... non capisco che vuoi intendere con il "flusso orario". Se memorizzi la data in db, sempre quella sarà... e gli utenti vedranno la data memorizzata...
O non ho capito il tuo problema?
 

andreto

Utente Attivo
5 Dic 2012
88
0
0
Se scrivi un articolo in data OGGI, la data rimane sempre quella di oggi... non capisco che vuoi intendere con il "flusso orario". Se memorizzi la data in db, sempre quella sarà... e gli utenti vedranno la data memorizzata...
O non ho capito il tuo problema?

Probabilmente è un errore di battitura ma io avevo scritto "fuso orario" e non "flusso orario".

Ti spiego meglio,
scrivo un articolo, il mio server è in italia, salvo la data in formato timestamp nel database mysql.
Se io dall'italia vado a leggere l'articolo, trovo ad esempio "scritto il 12/04/2016 alle ore 12.23",
se ci va un utente degli USA legge sempre "scritto il 12/04/2016 alle ore 12.23".

Il problema è che per lui tale orario deve ancora arrivare, per cui vorrei che lui leggesse 6/7 ore in meno così com'è il fuso orario.
Questo deve valere per tutti gli stati, non solo USA ma anche romania, inghilterra, cina ecc...
 
Ultima modifica:

peppe1995romano@

Nuovo Utente
12 Apr 2016
2
0
1
E se usassi 'REMOTE_ADDR' per ottenere l'IP del visitatore e poi dall IP potresti risalire alla nazione di provenienza e quindi al fusorario ?

Inviato dal mio LG-D620 utilizzando Tapatalk
 

andreto

Utente Attivo
5 Dic 2012
88
0
0
E se usassi 'REMOTE_ADDR' per ottenere l'IP del visitatore e poi dall IP potresti risalire alla nazione di provenienza e quindi al fusorario ?

Se scrivi un articolo in data OGGI, la data rimane sempre quella di oggi... non capisco che vuoi intendere con il "flusso orario". Se memorizzi la data in db, sempre quella sarà... e gli utenti vedranno la data memorizzata...
O non ho capito il tuo problema?

Grazie ad entrambi,
alla fine era più semplice di quello che mi immaginavo, troppo semplice da non pensare che funzionasse in questo modo.

Nel DB memorizzo il timestamp in formato UTC,
leggo questo con php e ricevo la data di oggi con 2 ore indietro [-2], orario UTC.
(siamo un'ora avanti rispetto a UTC [+1] e in questo periodo ancora un'ora avanti [+1] per l'ora legale)

Quando passo questo valore a javascript, in AUTOMATICO allinea il timestamp con l'ora impostata sul proprio computer.

Infatti passando lo stesso timestamp a computer con orari diversi si allinea perfettamente.

Ad esempio, scrivo un articolo adesso ore 21:00 in Italia, quando lo leggo vedo ore 21:00;
se sposto il fuso orario del pc facendo finta di essere a New York [GMT -4] [-2] quindi ore 15:00 vedo che l'articolo è stato scritto alle ore 15:00, quindi nello stesso istante.
In Italia questo istante sarebbe le ore 21:00, a New York le ore 15:00.

Probabilmente una spiegazione un po' contorta ma spero di essere stato di aiuto a chi come me avrà questo dubbio...

Pubblico anche lo script che ho creato per approfondire:

PHP:
<?php
$timestamp = 1460574000;
date_default_timezone_set('UTC');
echo 'UTC <br />';
echo date('j/n/Y \o\r\e G:i:s', $timestamp);
echo "<script language=\"JavaScript\">\n"; 
echo "var d = new Date(".$timestamp."*1000);\n";
echo "document.write('<br /><br />');\n";
echo "document.write('LOCALE <br />');\n";
echo "document.write(d.getDate()+'/'+(d.getMonth()+1)+'/'+d.getFullYear()+' ore '+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds());\n";
echo "</script>"; 
?>

Conclusioni:
Pensavo che Date() in questo caso JS, dato il timestamp restituisse la data UTC invece allinea il tutto con l'orario del PC, il Date() di PHP invece allinea il timestamp con l'orario del server, infatti ho dovuto utilizzare date_default_timezone_set('UTC') per avere l'orario UTC invece di quello del server.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M php non prende l'orario del server? Eppure uso timestamp() PHP 6
S [PHP] Da timestamp a data PHP 4
brasoft2019 [PHP] aggiungere timestamp in tabella correlata PHP 0
P [PHP] Contare i mesi con timestamp. PHP 8
T cambiare formato in uscita timestamp Database 0
M [PHP] Ricerca con data timestamp PHP 45
M Visualizzare data formato 'gg-mm-aaaa' da data timestamp nel DB PHP 1
M Mostrare il contenuto del database e convertire la data da timestamp PHP 2
S Aggiornare campo in base a timestamp meno recente fra piu tabelle PHP 2
M query per distinct su data timestamp Database 1
A [RISOLTO] Query per ricerca campo timestamp MySQL 2
F formattazione timestamp event Javascript 4
T Countdown e timestamp PHP 0
F [RISOLTO] TIMESTAMP +24Hour PHP 2
C Creare Timestamp PHP 3
M Convertire data da formato italiano a timestamp PHP 2
JellyBelly Leggere nel modo giusto il campo timestamp nel db PHP 3
A Gestione delle date in formato timestamp Snippet PHP 0
A Date in formato timestamp PHP 1
R aggiornamento valore db in base all'orario PHP 1
E BATCH x Settare Manualmente Orario PC RETE con ritardo Programmazione 0
S [PHP] Convertire un orario in un numero decimale PHP 2
R [PHP] Aggiungere 90 minuti a stringa orario PHP 1
K [PHP] Creazione di Calendario con orario PHP 4
A [PHP] Cambio immagini con orario PHP 1
K Range orario ASP e SQL Classic ASP 4
Bunz [Javascript] somma orario input + calcolo straordinario Javascript 3
A Problema orario invio mail per form PHP 4
Marcolotto Recuperare data e orario corrente in app Android Sviluppo app per Android 1
IImanuII cambiare orario del server PHP 0
empty89 Database Orario Ferroviario con Oracle Oracle 0
A Estrarre da un Datetime di mysql la data e l'orario in PHP PHP 2
R Iframe che cambia con l'orario PHP 5
M settare l'orario del server php di wamp (ver. 5.3.0) PHP 1
JellyBelly Espressione Regolare per controllo Orario Javascript 2
stellare21 controllo orario come fare? PHP 2
E Cambio colore cella in base all'orario Javascript 8
C Ricavare orario dal server Flash 0
I Chiudere una pagina asp in un determinato orario? Classic ASP 0
L Orario Guestbook sballato Supporto Mr.Webmaster 3
Nik Data e orario in una tag-board Classic ASP 6
S Intervallo orario Javascript 1
S Codice HTML Orario e fuso orario HTML e CSS 2
M Validazione Campo ORARIO Javascript 0
A problemi sulla lettura gruppo data orario Classic ASP 0
csi Inviare file jpg in locale alla stampante con php PHP 0
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
socket32 [XAMPP] Server in Locale condividere database MySQL 0
C modificare sito in locale con dreamWeaver HTML e CSS 3
G sito wordpress da remoto a locale con xampp WordPress 2

Discussioni simili