απαιτήσεις: Προκειμένου να βελτιωθεί η εμπειρία χρήστη, ο ιστότοπος θα πρέπει να εμφανίζει την αντίστοιχη ώρα σύμφωνα με τη ζώνη ώρας του τρέχοντος χρήστη, να λαμβάνει τις τρέχουσες πληροφορίες ζώνης ώρας του προγράμματος περιήγησης μέσω js και να τις μεταβιβάζει στο backend και, στη συνέχεια, να εμφανίζει τα επεξεργασμένα δεδομένα στον χρήστη. (Ή μετατρέπονται τα δεδομένα διεπαφής)
Η JavaScript λαμβάνει τη ζώνη ώρας του τρέχοντος πελάτη
Το αντικείμενο Intl είναι ένας χώρος ονομάτων για το API διεθνοποίησης ECMAScript που παρέχει ακριβή σύγκριση συμβολοσειρών, μορφοποίηση αριθμών και μορφοποίηση ημερομηνίας. Πρέπει να χρησιμοποιήσουμε το αντικείμενο DateTimeFormat αυτού του API.
Για λεπτομέρειες, ανατρέξτε στο:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Κώδικας:
Μπορείτε να δείτε την έξοδο: Ασία/Σαγκάη, που είναι η ζώνη ώρας μου είναι η Σαγκάη.
Μετατόπιση ζώνης ώρας UTC
Για να εντοπίσουμε καλύτερα την ώρα εμφάνισης, μπορούμε να λάβουμε τη μετατόπιση ζώνης ώρας UTC του τρέχοντος προγράμματος περιήγησης και να αυξήσουμε ή να μειώσουμε την ώρα UTC ανάλογα, την οποία μπορούμε να λάβουμε μέσω της μεθόδου getTimezoneOffset της παρουσίας αντικειμένου Date (σημειώστε το αποτέλεσμα που επιστρέφεταιΗ μονάδα είναι το σεντ):
Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Το πρόγραμμα περιήγησης Chrome προσομοιώνει διαφορετικές περιοχές, εξάγει μετατόπιση, κονσόλα DevTools -> Περισσότερα εργαλεία -> αισθητήρα, τροποποιεί τη θέση, όπως φαίνεται παρακάτω:
νέα ημερομηνία() Wed Sep 20, 2023 19:47:47 GMT+0800 (China Standard Time) νέα ημερομηνία().getTimezoneOffset()
-480 νέα ημερομηνία() Wed Sep 20, 2023 13:48:12 GMT+0200 (Mitteleuropäische Sommerzeit) νέα ημερομηνία().getTimezoneOffset()
-120 νέα ημερομηνία() Wed Sep 20, 2023 08:48:19 GMT-0300 (Horário Padrão de Brasília) νέα ημερομηνία().getTimezoneOffset()
180 (Τέλος)
|