Cách lấy múi giờ của người dùng trong php?
Dấu thời gian mặc định của Laravel được lưu trữ trong UTC và nếu bạn làm việc với một ứng dụng mà người dùng ở múi giờ khác, họ có thể thấy dấu thời gian trong ứng dụng không khớp với múi giờ của họ Show
Để khắc phục điều này, bạn cần lưu trữ múi giờ của người dùng trong cơ sở dữ liệu và đồng thời chuyển đổi các mô hình liên quan đến người dùng thành múi giờ thích hợp từ UTC Chúng tôi sẽ bao gồm hướng dẫn này trong hai phần
Hãy bắt đầu với phần đầu tiên #1 Truy xuất và lưu trữ múi giờ của người dùngChúng tôi sẽ sử dụng plugin javascript trong nền để lấy múi giờ của người dùng và chúng tôi có thể lưu trữ múi giờ trong bảng của người dùng tại thời điểm Đăng ký hoặc Đăng nhập. Chúng tôi sẽ bao gồm cả hai cách Để lưu trữ múi giờ của người dùng trong cơ sở dữ liệu, chúng tôi sẽ cần thêm một cột trong bảng của người dùng, trước tiên hãy thêm cột đó Thêm cột "múi giờ" trong cơ sở dữ liệu bảng người dùngChúng tôi phải thêm một cột mới "múi giờ" trong bảng người dùng. cho điều này thêm một lĩnh vực mới trong Tệp 0 sử dụng đoạn mã sau
Chạy lệnh thủ công sau để bỏ tất cả các bảng và chạy lại quá trình di chuyển
Lưu trữ múi giờ trong quá trình Đăng kýBây giờ chúng ta hãy đến phần mà chúng ta sẽ truy xuất múi giờ của người dùng trong quá trình đăng ký Đưa đoạn mã sau vào cuối 1
Với tập lệnh này, chúng tôi đang sử dụng plugin múi giờ theo thời điểm để truy xuất múi giờ của người dùng và sau đó chúng tôi sẽ đặt nó vào một trường ẩn bên trong biểu mẫu đăng ký Thêm múi giờ làm trường ẩn trong biểu mẫu đăng ký
Bây giờ khi bạn mở trang đăng ký (/register) và nhấp vào kiểm tra Bạn sẽ tìm thấy múi giờ của người dùng như thế này Ở đây chúng ta có thể thấy múi giờ là "Châu Á/Calcutta"
Bây giờ, phần tiếp theo là lấy múi giờ này sau khi đăng ký và lưu trữ nó trong cơ sở dữ liệu Nhận múi giờ từ yêu cầu đăng khi đăng kýChúng tôi đang sử dụng phương pháp 2, được gọi mỗi khi người dùng mới đăng ký. Đối với điều này, chúng ta phải thêm dòng mã sau vào tệp 3________số 8chúng tôi rất tốt để đi. khi người dùng nhấp vào đăng ký với tất cả các trường bắt buộc, múi giờ sẽ được lưu trữ trong cơ sở dữ liệu
Lưu trữ múi giờ trong khi đăng nhậpQuá trình tương tự cũng có thể được thực hiện trong quá trình đăng nhập, đối với điều này, bạn cần đưa cùng một tập lệnh vào cuối quá trình đăng nhập. lưỡi. php và sau đó bao gồm một trường ẩn trong biểu mẫu đăng nhập
khi bạn có múi giờ trong biểu mẫu đăng nhập, giờ đây bạn có thể sử dụng phương thức Đã xác thực trong LoginController để lưu múi giờ trong bảng của người dùng trong cơ sở dữ liệu 0Bây giờ khi người dùng đăng nhập, nếu anh ta chưa có múi giờ trong cơ sở dữ liệu, nó sẽ được thêm vào Bây giờ chúng ta đã hoàn thành việc tìm cách truy xuất và lưu trữ múi giờ của người dùng, Bây giờ chúng ta sẽ xem cách chúng ta có thể sử dụng múi giờ này để chuyển đổi dấu thời gian UTC thành múi giờ dành riêng cho người dùng #2 Chuyển đổi UTC thành múi giờ của người dùngTheo mặc định, dấu thời gian của Laravel bao gồm các trường 4 , 5 trong bảng Mô hình được lưu trữ theo múi giờ UTC và điều này được chỉ định trong tệp 6 7Bây giờ chúng ta phải chuyển đổi rõ ràng theo múi giờ của người dùng bằng cách sử dụng trường "múi giờ" được lưu trữ Chúng tôi sẽ sử dụng trình biến đổi của Laravel cho tác vụ này để mỗi khi một trường chứa dấu thời gian được yêu cầu từ cơ sở dữ liệu trước, nó sẽ đi qua trình biến đổi để chuyển đổi Ví dụ: tôi đã chuyển đổi trường 4 mỗi lần trước khi hiển thị cho người dùng như sau 6Nếu múi giờ của người dùng có trong cơ sở dữ liệu, nó sẽ được chuyển đổi thành múi giờ đó hoặc nó sẽ ở dạng UTC vì múi giờ mặc định của ứng dụng là "UTC" ThưởngChúng tôi đã đề cập đến hai cách mà chúng tôi đang sử dụng javascript để phát hiện múi giờ của người dùng và sau đó chúng tôi lưu trữ múi giờ đó trong cơ sở dữ liệu, nếu bạn muốn người dùng của mình chọn múi giờ theo cách thủ công từ danh sách múi giờ hoặc nếu anh ấy muốn cập nhật múi giờ Cho phép Người dùng Chọn/Thay đổi Múi giờCó một cách nữa, trong đó người dùng có thể chọn múi giờ hợp lệ một cách rõ ràng. Danh sách múi giờ do PHP cung cấp. Thêm mã danh sách múi giờ trong tệp phiến 7chúng tôi có thể lấy trường múi giờ này từ "yêu cầu" để lưu trữ trong cơ sở dữ liệu và để sau này chuyển đổi từ UTC sang múi giờ của người dùng PHP xác định múi giờ như thế nào?Hàm date_default_timezone_get() trả về múi giờ mặc định được sử dụng bởi tất cả các hàm ngày/giờ trong tập lệnh.
Múi giờ của người dùng là gì?Múi giờ của người dùng là múi giờ dành riêng cho khách hàng có thể được xác định cho thời gian và ngày sử dụng của từng người dùng trong bản ghi chính của người dùng. It is contained in the system field sy-zonlo.
Làm cách nào tôi có thể lấy múi giờ và mã quốc gia trong PHP?PHP có chức năng sử dụng GeoIP. Hàm geoip_time_zone_by_country_and_region() sẽ trả về múi giờ tương ứng với tổ hợp mã quốc gia và mã vùng.
Múi giờ PHP được đặt ở đâu?Cách đặt múi giờ PHP trong php. . Chuyển đến tài khoản cPanel của bạn >> phần Tệp >> menu Trình quản lý tệp Điều hướng đến thư mục gốc của trang web của bạn (theo mặc định, nó là public_html cho tên miền chính và tên miền của bạn. com cho tên miền addon). . Thêm dòng sau. . Nhấp vào Lưu thay đổi |