Jak mogę zapisać datę, np. 2011-01-30 18:23:49 i dostosować ją do wybranej strefy czasowej? Czy istnieje prosty sposób, taki jak proste określenie strefy czasowej za pomocą skrótu lub dodanie/odjęcie x ilości godzin? Zasadniczo chcę, aby użytkownicy mogli wybrać swoją strefę czasową, a ta domyślna data powinna być dopasowana do ich.Dostosuj strefę czasową
Odpowiedz
Czy użytkownikowi wybrać swoją strefę czasową
użyć tej nazwy stref lub przesunięte
date_default_timezone_set
ustawić domyślną strefę czasową używaną w funkcji daty całej reszty wykonywania skryptu.użytkowania
date('Z')
aby ta strefa czasowa to GMT przesunięcie w sekundachKonwersja datę zapisaną w datownik z
strtotime
- znaczniki czasu UNIX są zawsze GMT, więc masz teraz czasu GMT.Dodaj przesunięcie od kroku 3, aby przekonwertować ten czas do strefy czasowej użytkownika.
Ponownie użyj formatu
date
, aby sformatować znacznik czasu jako ciąg znaków w wybranym formacie wyświetlania.
Przykład:
$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;
Nadchodzi moje rozwiązanie. Testowałem to z America/Los_Angeles jako strefą czasową serwerów i moją strefą czasową jako użytkownikami. Zakładam, że czas jest przechowywany za pomocą strefy czasowej serwerów.
<?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. jak wykryć strefę czasową klienta?
- 2. Wyodrębnij strefę czasową ze stringa
- 3. Jak uzyskać strefę czasową użytkownika?
- 4. H2 ustawić domyślną strefę czasową
- 5. Wymuś strefę czasową Java jako GMT/UTC
- 6. Jak uzyskać lokalną strefę czasową w PHP?
- 7. Jak ustawić strefę czasową z wiersza poleceń?
- 8. Jak zmienić strefę czasową dla aplikacji asp.net
- 9. Jak programowo ustawić strefę czasową w Javie?
- 10. Jak zmienić strefę czasową za pomocą adb
- 11. Zmieniaj strefę czasową w programie Android programowo
- 12. Jak ustawić strefę czasową na wątek?
- 13. Pobierz strefę czasową/kraj z iPhone'a
- 14. Jak ustawić strefę czasową w Crashlytics?
- 15. Funkcja wykresów pand ignoruje strefę czasową timeseries
- 16. Jak stworzyć strefę czasową Django-admin?
- 17. Jak określić strefę czasową według przesunięcia UTC?
- 18. Czas Jody podaje niewłaściwą strefę czasową
- 19. Jak mogę uzyskać strefę czasową lokalnego serwera?
- 20. Konwersja daty na inną strefę czasową
- 21. Próbujesz ustawić strefę czasową dla wydarzenia
- 22. MYSQL ustawić strefę czasową w kodzie PHP
- 23. Jak ustawić strefę czasową przy użyciu Powershell
- 24. Jak określić strefę czasową w UIDatePicker
- 25. Skąd Android bierze domyślną strefę czasową?
- 26. Uzyskaj strefę czasową z React Native
- 27. Bot telegramu. Uzyskaj strefę czasową użytkownika
- 28. Jak ustawić strefę czasową w gnuplot?
- 29. Pobierz strefę czasową według kraju i regionu
- 30. Jak ustawić strefę czasową przed wywołaniem strftime?
możliwe duplikat [Regulacja strefę czasową, w PHP z DateTime/DateTimeZone] (http://stackoverflow.com/questions/1445087/adjusting-time-zone-in-php-with-datetime-datetimezone) –