Come dovrei prendere una data memorizzata, come 2011-01-30 18:23:49, e regolarla su un fuso orario prescelto? Esiste un modo semplice come la semplice definizione del fuso orario per abbreviazione o l'aggiunta/la sottrazione della quantità di ore? Fondamentalmente voglio che gli utenti siano in grado di scegliere il loro fuso orario e questa data di default sia regolata per adattarsi alla loro.regolare il fuso orario
risposta
Avere l'utente scegliere il proprio fuso orario
usare quel nome zona o compensati con
date_default_timezone_set
per impostare il fuso orario predefinito utilizzato in funzioni di data per tutto il resto della esecuzione dello script.Usa
date('Z')
per ottenere che il fuso orario è compensato da GMT in secondiConvertire la data immagazzinata ad una data con
strtotime
- timestamp UNIX sono sempre GMT, in modo da ora avete il tempo in GMT.Aggiungere l'offset dal passaggio 3 per convertire tale fuso orario nel fuso orario dell'utente.
Utilizzare nuovamente
date
per formattare il timestamp come una stringa nel formato di visualizzazione desiderato.
Esempio:
$user_timezone = 'America/Los_Angeles';
$stored_time = '2011-01-30 18:23:49';
date_default_timezone_set($user_timezone);
$timestamp = strtotime($stored_time);
$local_timestamp = $timestamp + date('Z');
$local_date = date('Y-m-d H:i:s', $local_timestamp);
echo $local_date;
Qui viene la mia soluzione. L'ho provato con America/Los_Angeles come fuso orario dei server e il mio fuso orario come utenti. Presumo che il tempo sia memorizzato utilizzando il fuso orario dei server.
<?php
// My (user) timezone
$user_timezone = 'Europe/Berlin';
// Server timezone
$stored_timezone = 'America/Los_Angeles';
// Date/Time stored in your DB, using timezone of the server (yours, that is)
$stored_datetime = '2011-01-29 22:40:00'; // this is the current time in L.A.
// Setting default to servers timezone if not done before
date_default_timezone_set($stored_timezone);
// converting to unix timestamp
$stored_timestamp = strtotime($stored_datetime);
// setting default to users timezone
date_default_timezone_set($user_timezone);
// converting to timestamp
$user_datetime = date('Y-m-d H:i:s', $stored_timestamp);
// setting default back to servers timezone
date_default_timezone_set($stored_timezone);
echo $user_datetime; // output is my current time
- 1. Convertire fuso orario locale a PST fuso orario in C#
- 2. H2 predefinito fuso orario
- 3. Fuso orario con PostgreSQL
- 4. strptime con fuso orario
- 5. Java GregorianCalendar Fuso orario
- 6. ottenere fuso orario dell'utente
- 7. Python Fuso orario conversione
- 8. javascript Data fuso orario
- 9. Fuso orario per Firebase.ServerValue.TIMESTAMP
- 10. fuso orario russo cambia
- 11. git commit fuso orario
- 12. conversione fuso orario Silverlight
- 13. Come cambiare il fuso orario e il fuso orario nel simulatore iPhone?
- 14. Fuso fuso orario per il test delle app Web
- 15. Imposta il fuso orario corrente in Rails?
- 16. Come impostare correttamente il fuso orario mysql
- 17. Che fuso orario utilizza il server Heroku?
- 18. come rilevare il fuso orario del client?
- 19. Ottieni il fuso orario da DateTime
- 20. Come `strftime` aver regolato il fuso orario?
- 21. Come impostare il fuso orario in gnuplot?
- 22. Il fuso orario ICS non funziona
- 23. salvare il fuso orario in Modelli Django
- 24. Come ottenere il fuso orario dell'utente?
- 25. Ottiene il fuso orario con React Native
- 26. Come cambio il fuso orario in JavaScript?
- 27. specificare il fuso orario di output cqlsh
- 28. rimuovere il fuso orario di pytz
- 29. Come ottenere il fuso orario del cliente?
- 30. Come impostare il fuso orario in codeigniter?
possibile duplicato di [Regolazione fuso orario in PHP con DateTime/DateTimeZone] (http://stackoverflow.com/questions/1445087/adjusting-time-zone-in-php-with-datetime-datetimezone) –