2011-02-03 43 views
23

Khi date.timezone trong php.ini là nhận xét ra, nó mang lại cho tôi:Làm thế nào để thiết lập date.timezone cho mã đánh lửa để làm việc với PHP5.3

Một PHP Lỗi đã gặp phải

Mức độ nghiêm trọng : Cảnh báo

Thông báo: main(): Không an toàn để dựa trên múi giờ của hệ thống cài đặt. Bạn đang yêu cầu để sử dụng cài đặt ngày giờ hoặc chức năng date_default_timezone_set(). Trong 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ả số nhận dạng múi giờ. Chúng tôi chọn 'Mỹ/Los_Angeles' cho '-8,0/no DST' thay

Tên tập tin: controllers/helloworld.php

Dòng Số: 2

Khi tôi có

date.timezone = "America/Los_Angeles" 

Nó mang lại cho tôi điều này:

Lỗi máy chủ Trang web gặp phải lỗi khi truy xuất http://localhost/ci/index.php/helloworld. Có thể ngừng hoạt động để bảo trì hoặc được định cấu hình không chính xác. Dưới đây là một số đề xuất : Tải lại trang web này sau đó. Lỗi HTTP 500 (Máy chủ nội bộ Lỗi): Một điều kiện không mong muốn là gặp phải trong khi máy chủ là cố gắng thực hiện yêu cầu.

Tôi đang sử dụng php5.3, trình kích hoạt mã 2.0.0 và Apache2.2. Bất cứ ai cũng có vấn đề này quá?

Cập nhật 1: tôi đã cố gắng tải một test.php không có mã igniter, nơi 3 dòng đầu tiên của test.php là

date_default_timezone_set('America/Los_Angeles'); 
echo date("l j \of F Y h:i:s A"); 

Và nó hoạt động tốt, các múi giờ khác nhau cũng hoạt động tốt quá. Vì vậy, tôi nghi ngờ vấn đề là từ mã igniter ... Bất cứ ai sử dụng mã đánh lửa ở đây?

Trả lời

70

Nếu bạn google "CodeIgniter PHP 5.3" bạn đã có thể tìm thấy bài viết này khá nhanh chóng :)

http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-on-PHP-5.3

Để sửa lỗi này, bạn chỉ cần chỉnh sửa chỉ số chính.php cho ứng dụng CodeIgniter của bạn:

if(! ini_get('date.timezone')) 
{ 
    date_default_timezone_set('GMT'); 
} 

Sửa đổi này là thứ bạn có thể cần cho bất kỳ ứng dụng CodeIgniter nào chạy trên PHP 5.3 và có thể dễ dàng sửa đổi theo múi giờ địa phương của bạn. Có một danh sách đầy đủ các múi giờ được hỗ trợ trong hướng dẫn sử dụng PHP here.

+1

Tôi cũng đã thử điều đó. Tôi nhận được cùng một thông báo lỗi máy chủ khi đặt date.timezone trực tiếp trong php.ini – Snowfish

+0

Tìm trong nhật ký PHP của bạn. 500 từ PHP là khá hiếm. –

+0

Tôi vẫn không thể tìm thấy giải pháp, nhưng cảm ơn vì đã giúp đỡ! Tôi đã kiểm tra các bản ghi, nhưng tôi không tìm thấy bất cứ điều gì hữu ích (hoặc có thể tôi đang kiểm tra nhật ký sai). Tuy nhiên, tôi thấy rằng mã đánh lửa không hỗ trợ đầy đủ php5. Kết quả là, tôi quyết định bỏ mã đánh lửa. Dù sao, cảm ơn vì đã giúp đỡ một lần nữa. – Snowfish

3

date.timezone được dự định để truy cập tệp php.ini hoặc .htaccess của bạn.

bạn có thể thực hiện ini_set('date.timezone', 'America/Los_Angeles'); trong dòng đầu tiên của tập lệnh và nhận kết quả mong muốn.

+0

Tôi đang sử dụng mã đánh lửa, do đó, dòng đầu tiên của kịch bản của tôi có nghĩa là index.php dưới CI của tôi r? – Snowfish

+0

@ snowfish, vâng ... đây chính là giải pháp mà tôi đã đăng:/ –

+0

Tôi đang đối mặt với cùng một vấn đề. Tôi đã thực hiện tất cả những thay đổi này trong index.php cũng như php.ini. Nhưng vẫn hiển thị thời gian máy chủ của nó. Xin hãy giúp tôi giải quyết vấn đề này. –

22

Vâng, nếu bạn không thể trực tiếp chỉnh sửa file php.ini, đặt ...

ini_set('date.timezone', 'America/New_York'); 

... như dòng đầu tiên trong index.php CI của hoạt động tốt.

tham khảo: PHP's Available Timezones

+4

. hoàn toàn cho tôi, tôi đặt nó index.php – Amitabh

4

đây là cách đơn giản để làm điều đó

$timezone = "Asia/Calcutta"; 
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone); 
//echo date('d-m-Y H:i:s'); 

$localtime=date('H:i:s'); 

$sql="INSERT INTO hits (ip,edate,curtime,page_name) VALUES ('$ip', CURDATE(),'$localtime','$filename') "; 
8

ghi trong CodeIgniter index.php của bạn ...

/* 
|--------------------------------------------------------------- 
| TimeZone 
|--------------------------------------------------------------- 
| 
| default Time Zone 
| 

*/ 
if (function_exists('date_default_timezone_set')) 
date_default_timezone_set('Asia/Jakarta'); 

Chạy tốt trong CodeIgniter tôi

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