Quali sono i modi migliori per presentare i fusi orari selezionabili all'utente?

È davvero necessario consentire all'utente di scegliere da qualsiasi fuso orario restituito da timezone_identifiers_list () di PHP? Ci sono una quantità enorme di fusi orari e il menu a discesa HTML è piuttosto lento su alcuni sisthemes a causa di quante opzioni ci sono. Capisco che posso generare manualmente fusi orari statunitensi come Pacific, Eastern, Central, ecc. Ma c'è un elenco di fusi orari internazionali comunemente usati? Per comune, intendo where se wheressi usare quella list, catturerebbe il 99,9% della mia base di utenti internazionali. Sembra quasi eccessivo wherer includere OGNI ansible fuso orario come opzione per l'utente. Qualcuno ha idee sulle migliori pratiche per i fusi orari in generale?

Puoi farlo in molti modi diversi.
Quello che direi che funziona meglio è solo noi timezone_identifiers_list() di PHP.
Ma invece di creare un elenco a discesa, crea due elenchi a discesa.

  1. il menu a discesa dovrebbe contenere la regione (Europa, Asia, India ecc.)
  2. il menu a discesa dovrebbe contenere le città della regione scelta.

E poi dovresti fare un dropdown con le città in un field ricercabile, in modo che una persona possa scrivere parte del nome della città e mostra solo le città, compreso ciò che la persona ha scritto. ( come suggerito da @ dam660 Scelto è una buona scelta qui )
In questo modo copriresti tutti i fusi orari e non sarebbe un disastro totale da guardare.

È davvero necessario consentire all'utente di scegliere da qualsiasi fuso orario restituito da timezone_identifiers_list () di PHP?

No, perché gli utenti dovrebbero preoccuparsi di questo? Una pratica per gestire diversi fusi orari è archiviare tutto come un timestamp unix nel database. Quindi, quando lo visualizzi, usa un po 'di javascript per convertirlo in data e ora dipendenti dal fuso orario dell'utente.

se wheressi usare quella list, catturerebbe il 99,9% della mia base di utenti internazionali

Sai da where proviene il 99,9% della tua base utenti internazionale? Quindi puoi assemblare questa list da solo.

Oppure puoi suggerire un fuso orario in base ad altre informazioni, come la città o il paese di un utente. Potresti provare a usare GeoIP per determinare la sua posizione (attenzione però ai proxy).

Dividi l'elenco in due elenchi (continente e posizione), selezionali in base al suggerimento.