Trong dự án của tôi có thả xuống múi giờ (PT, CST vv), khi Admin thay đổi múi giờ từ trình đơn thả xuống, bảng quản trị phản ánh múi giờ từ menu thả xuống đã chọn.
Cách thay đổi Config/app.php "múi giờ" (Múi giờ ứng dụng) theo tùy chọn đã chọn.Thay đổi TimeZone động trong laravel
Trả lời
Bạn có thể sử dụng chức năng Laravel helper config
để thiết lập múi giờ. Tuy nhiên, điều này sẽ chỉ ảnh hưởng đến yêu cầu bạn sẽ nhận được.
config(['app.timezone' => $timezone]);
Nếu mục tiêu của bạn là thay đổi múi giờ đã thay đổi và chạy theo mọi yêu cầu thì hãy lưu múi giờ đã thay đổi trong DB hoặc trong tệp. Sau đó, viết một truy vấn cho DB hoặc đọc một tệp trong app/config.php và thay đổi giá trị của múi giờ chỉ mục trong một tệp.
Ví dụ: (ví dụ về tệp):
Khi bạn thay đổi múi giờ lưu trong tệp.
file_put_contents("path/to/file", $timezone);
Và, trong app/config.php
$timezone= file_get_contents("path/to/file");
return [
. . .
'timezone' => $timezone,
. . .
]
Nếu bạn muốn giữ múi giờ mới cho tất cả các yêu cầu trong tương lai, bạn cần sử dụng gói như larapack/config-writer để có thể lưu múi giờ vào tệp cấu hình app
.
Một cách khác để xử lý việc này là giữ múi giờ trong DB, tìm nạp múi giờ trong mọi yêu cầu và đặt nó với config(['app.timezone' => $timezone])
động.
Bạn có thể sử dụng middleware
để đạt được điều này, tùy theo bất kỳ tuyến đường nào bạn sẽ viết đề cập đến tất cả những người áp dụng với phần mềm trung gian đó.
Bạn có thể lấy dữ liệu từ cơ sở dữ liệu và áp dụng nó như như sau,
config('app.timezone', 'your selected timezone')
bạn cũng cần gọi date_default_timezone_set
config(['app.timezone' => $timezone]);
date_default_timezone_set($timezone);
- 1. Java GregorianCalendar thay đổi TimeZone
- 2. Android AlarmManager và DST/Timezone/Thời gian thay đổi?
- 3. Đường dẫn phiên thay đổi ứng dụng Laravel động
- 4. Thay đổi Laravel Blade Delimiter
- 5. TimeZone trong C#?
- 6. Thay đổi Laravel created_at khi cập nhật
- 7. Thay đổi đường dẫn lưu trữ trong Laravel 5
- 8. Thay đổi cấp độ đăng nhập trong Laravel 4
- 9. Làm thế nào để thay đổi các biến trong tệp .env động trong Laravel?
- 10. Thay đổi Laravel Passport/OAuth-Server Responses
- 11. Thay đổi định dạng ngày laravel 5
- 12. Hiểu UILocalNotification TimeZone
- 13. Thay đổi mật mã trong mã hóa Laravel
- 14. Thay đổi URL đăng nhập/đăng ký trong Laravel 5.2
- 15. SQLAlchemy DateTime timezone
- 16. Các url động trong laravel?
- 17. TimeZone theo Tọa độ
- 18. TimeZone.setDefault thay đổi trong JDK6
- 19. Thay đổi CSS động
- 20. thay đổi jquery không hoạt động trong trường hợp thay đổi giá trị động
- 21. Thay đổi kiểu động trong WPF
- 22. Tự động thay đổi HttpClient.Timeout trong .NET
- 23. Thay đổi biểu tượng trong ActionBar động
- 24. Tự động thay đổi url trong Backbone
- 25. Cách đặt TimeZone bằng Powershell
- 26. Di chuyển TimeZone thành DateTimeZone
- 27. Tự động thay đổi 'teamcity.build.branch'
- 28. Làm thế nào để thay đổi đặt lại mật khẩu email chủ đề trong laravel?
- 29. Thay đổi lập trình động
- 30. Cách thay đổi/Tên trường mật khẩu tùy chỉnh cho Laravel 4 và xác thực người dùng Laravel 5
Bất cứ khi nào có sự thay đổi trong tập tin cấu hình, cần phải chạy php thợ thủ công cấu hình: bộ nhớ cache để có được những thay đổi này. Cách các thay đổi phản ánh mà không cần cấu hình: lệnh bộ nhớ cache? – SVM
Tôi không nghĩ vậy .... bạn có thử không? nhưng dù sao bạn có thể thêm exec ("php artisan cache: clear") thực thi thời gian ngẫu nhiên .. hoặc chỉ một lần khi tệp đã thay đổi. bạn cũng có thể sử dụng hàm filemtime(). một cái gì đó như thế này bây giờ() - filemtime() <5, sau đó chạy lệnh exec –