2012-01-10 23 views
14

Nâng cấp lên một máy chủ mới, tôi lặp đi lặp lại hai lỗi:Làm thế nào để sửa chữa các lỗi liên quan đến PHP múi giờ (function.strtotime và function.date)

Cảnh báo: strtotime() [function.strtotime]: Đây là không an toàn khi dựa vào cài đặt múi giờ của hệ thống . Bạn đang yêu cầu để sử dụng cài đặt ngày tháng ngày giờ hoặc hàm date_default_timezone_set(). Trong trường hợp trường hợp bạn đã sử dụng bất kỳ phương pháp nào trong số những phương pháp đó và bạn vẫn nhận được cảnh báo này, rất có thể bạn đã viết sai chính tả định danh múi giờ. Chúng tôi chọn 'America/New_York' cho 'EST/-5,0/no DST' thay vì trong ...

Cảnh báo: ngày() [function.date]: Nó không phải là an toàn để dựa vào cài đặt múi giờ của hệ thống . Bạn đang yêu cầu để sử dụng cài đặt ngày tháng ngày giờ hoặc hàm date_default_timezone_set(). Trong trường hợp trường hợp bạn đã sử dụng bất kỳ phương pháp nào trong số những phương pháp đó và bạn vẫn nhận được cảnh báo này, rất có thể bạn đã viết sai chính tả định danh múi giờ. Chúng tôi đã chọn 'America/New_York' cho 'EST/-5.0/no DST' thay vì trong

Làm cách nào để khắc phục những vấn đề này?

Mã trong câu hỏi là thế này:

'date' => date("Y-M-d",strtotime($Array['_dateCreated'])), 

Tôi đã thử đặt này trong một bao gồm ở trên cùng của tất cả các trang của tôi:

<?php 
date_default_timezone_set('America/New_York'); 
?> 

Cảm ơn trước sự giúp đỡ của bạn.

+0

Related: http://stackoverflow.com/q/4428546/819417 –

+1

*** Lưu ý: *** Tệp 'php.ini' của' php-cli' khác với 'apache2''s' tệp php.ini'. Tôi đề nghị tượng trưng liên kết với nhau để giữ cho chúng được đồng bộ và tránh nhầm lẫn! –

Trả lời

28

date.timezone trong php.ini có thể khắc phục sự cố này trên toàn cầu.

+1

Vì lý do nào đó, các bổ sung của tệp /etc/php.ini như date.timezone dường như bị bỏ qua ngay cả sau khi khởi động lại apache. – Keefer

+0

Chỉ ra rằng /etc/php.ini không phải là đúng, thay vào đó [domain] /httpdocs/etc/php.ini là cái có hiệu lực. – Keefer

+1

Bạn có thể tìm hiểu xem máy chủ của bạn đang sử dụng 'php.ini' nào bằng cách thực hiện' phpinfo() 'và tìm kiếm' Tệp cấu hình tải '. – Basti

25

Cố định này bằng cách đặt

date_default_timezone_set('America/New_York'); 

Trong tập tin thực tế rằng đã phàn nàn.

Các vấn đề liên quan