Một cách dễ dàng để đặt múi giờ cho người dùng trong ứng dụng của bạn và sau đó hiển thị ngày/giờ cho họ theo múi giờ địa phương của họ
Làm thế nào nó hoạt động
Gói này lắng nghe sự kiện
@displayDate[$post->created_at]2 và sau đó sẽ tự động đặt một
@displayDate[$post->created_at]3 trên mô hình
@displayDate[$post->created_at]4 của bạn [được lưu trữ trong cơ sở dữ liệu]
Gói này sử dụng gói torann/geoip để tra cứu vị trí của người dùng dựa trên địa chỉ IP của họ. Gói này cũng trả về thông tin như đơn vị tiền tệ của người dùng và múi giờ của người dùng. Bạn có thể cấu hình riêng gói này nếu bạn yêu cầu
Cách sử dụng
Bạn có thể hiển thị ngày cho người dùng của mình theo múi giờ của họ bằng cách sử dụng
{{ Timezone::convertToLocal[$post->created_at] }}
Hoặc sử dụng chỉ thị lưỡi đẹp của chúng tôi
@displayDate[$post->created_at]
Thêm ví dụ bên dưới
Cài đặt
Kéo gói bằng Composer
composer require jamesmills/laravel-timezone
Xuất bản di chuyển cơ sở dữ liệu
php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
Chạy di chuyển cơ sở dữ liệu. Điều này sẽ thêm một cột
@displayDate[$post->created_at]3 vào bảng
@displayDate[$post->created_at]6 của bạn
php artisan migrate
ví dụ
Hiển thị ngày/giờ cho người dùng theo múi giờ của họ
Mặc định sẽ sử dụng định dạng
@displayDate[$post->created_at]7 và sẽ không hiển thị múi giờ
@displayDate[$post->created_at]1
Nếu muốn, bạn có thể đặt định dạng tùy chỉnh và cũng bao gồm một phiên bản đẹp của múi giờ
@displayDate[$post->created_at]2
Sử dụng chỉ thị lưỡi dao
Làm cho cuộc sống của bạn dễ dàng hơn từng bước một
@displayDate[$post->created_at]3
Và với định dạng tùy chỉnh
@displayDate[$post->created_at]4
Lưu đầu vào của người dùng vào cơ sở dữ liệu trong UTC
Quá trình này sẽ lấy ngày/giờ, đặt thành múi giờ của người dùng, sau đó trả về dưới dạng UTC trong phiên bản Carbon
@displayDate[$post->created_at]5
Cấu hình tùy chỉnh
Xuất bản tệp cấu hình là tùy chọn
@displayDate[$post->created_at]0
Tin nhắn flash
Khi múi giờ đã được đặt, chúng tôi hiển thị thông báo flash, Theo mặc định, được định cấu hình để sử dụng thông báo flash mặc định của Laravel, đây là một số tích hợp tùy chọn
laracast/flash -
@displayDate[$post->created_at]8
thủy ngânseries/hào nhoáng -
@displayDate[$post->created_at]9
spatie/laravel-flash -
composer require jamesmills/laravel-timezone
0mckenziearts/laravel-notify -
composer require jamesmills/laravel-timezone
1usernotnull/tall-toasts -
composer require jamesmills/laravel-timezone
2Để ghi đè cấu hình này, bạn chỉ cần thay đổi thuộc tính
composer require jamesmills/laravel-timezone
3 bên trong tệp cấu hình composer require jamesmills/laravel-timezone
4 cho gói mong muốn. Bạn có thể tắt tin nhắn flash bằng cách cài đặt composer require jamesmills/laravel-timezone
5Ghi đè múi giờ hiện có trong cơ sở dữ liệu
Theo mặc định, múi giờ sẽ được ghi đè ở mỗi lần đăng nhập bằng múi giờ của người dùng hiện tại. Hành vi này có thể bị hạn chế chỉ cập nhật múi giờ nếu nó trống bằng cách đặt tùy chọn cấu hình
composer require jamesmills/laravel-timezone
6Định dạng mặc định
Theo mặc định, định dạng ngày tháng sẽ là
@displayDate[$post->created_at]7. Để ghi đè cấu hình này, bạn chỉ cần thay đổi thuộc tính
composer require jamesmills/laravel-timezone
8 bên trong tệp cấu hình composer require jamesmills/laravel-timezone
4 để có định dạng mong muốnMảng tra cứu
Cấu hình mảng tra cứu này cho phép tìm địa chỉ từ xa của người dùng trong bất kỳ thuộc tính nào bên trong trình trợ giúp Laravel
php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
0, bằng bất kỳ phím nào. Lưu ý khi tìm thấy khóa bên trong thuộc tính, khóa đó sẽ được sử dụng. Theo mặc định, chúng tôi sử dụng thuộc tính php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
1 với khóa php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
2. Để ghi đè cấu hình này, bạn chỉ cần thay đổi thuộc tính php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
3 bên trong tệp cấu hình composer require jamesmills/laravel-timezone
4 để tra cứu mong muốnTin nhắn người dùng
Bạn có thể định cấu hình thông báo hiển thị cho người dùng khi múi giờ được đặt bằng cách thay đổi thuộc tính
php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
5 bên trong tệp cấu hình composer require jamesmills/laravel-timezone
4Gói GeoIp cơ bản
Nếu bạn muốn tùy chỉnh gói
php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
7 cơ bản, bạn có thể xuất bản tệp cấu hình bằng cách sử dụng lệnh bên dưới@displayDate[$post->created_at]1
Nhật ký thay đổi
Vui lòng xem CHANGELOG để biết thêm thông tin về những thay đổi gần đây
Đóng góp
Vui lòng xem ĐÓNG GÓP để biết chi tiết
Giấy phép
Gói này miễn phí 100% và mã nguồn mở, theo giấy phép MIT. Sử dụng nó theo cách bạn muốn
Gói này là Treeware. Nếu bạn sử dụng nó trong sản xuất, thì chúng tôi yêu cầu bạn mua cho thế giới một cái cây để cảm ơn vì công việc của chúng tôi. Bằng cách đóng góp cho rừng Treeware, bạn sẽ tạo việc làm cho các gia đình địa phương và khôi phục môi trường sống của động vật hoang dã
Vấn đề
Nếu bạn nhận được thông báo như
php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
8 thì điều này là do gói php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
7 yêu cầu trình điều khiển bộ nhớ đệm hỗ trợ gắn thẻ và có thể bạn đã đặt ứng dụng của mình để sử dụng trình điều khiển bộ nhớ đệm php artisan migrate
0. Bạn có thể xuất bản tệp cấu hình cho gói php artisan vendor:publish --provider="JamesMills\LaravelTimezone\LaravelTimezoneServiceProvider" --tag=migrations
7 và đặt php artisan migrate
2 để giải quyết vấn đề này. Đọc thêm về vấn đề này tại đây