2012-08-02 27 views
11

Điều này có vẻ lạ nhưng tôi đã kiểm tra mọi thứ, và vẫn còn một điều kỳ lạ xảy ra.date_default_timezone_set ('UTC') không hoạt động

Tôi không thể thay đổi múi giờ của tập lệnh php.

Trước tiên: những gì tôi đã làm là một cái gì đó như thế này:

<?php 
date_default_timezone_set('UTC'); 
echo '<br>'; 
echo date('Y-m-d H:i:s'); 
?> 

này dường như được làm việc tốt khi tôi đã cố gắng này trên một thử nghiệm http://codepad.org/rpYZ0flA.

Múi giờ của máy chủ của tôi được đặt thành UTC + 8: 00 Đài Bắc, nhưng khi tôi thử mã ở trên, nó không thực sự hoạt động. Nó vẫn hiển thị date_time hiện tại của tôi trong múi giờ của máy chủ của tôi, không theo mã ở trên.

Và đây là cấu hình php.ini của máy chủ của tôi:

date/time support     enabled 
"Olson" Timezone Database Version 2012.3 
Timezone Database     internal 
Default timezone      Europe/Berlin 

Tại sao điều này đang xảy ra? Đây có phải là lỗi không? Hoặc sai lầm trên server_setup hoặc tôi chỉ bị mất một cái gì đó trong mã của tôi?

Cảm ơn bạn.

LƯU Ý: môi trường của tôi là Windows 7N chạy trong máy ảo sử dụng PHP 5.4.4

FIX:

tôi đã sửa chữa bằng cách thay đổi bằng tay php.ini

+0

phiên bản php nào bạn đang sử dụng? – Hawili

+1

php 5.4.4, tôi nghĩ có sự cố với máy ảo .. –

+3

kiểm tra example1 trên http://php.net/manual/en/function.date-default-timezone-set.php – Hawili

Trả lời

3

Hãy thử điều này

<?php 
echo date('Y-m-d H:i:s T', time()) . "\n"; 
date_default_timezone_set('UTC'); 
echo date('Y-m-d H:i:s T', time()) . "\n"; 

tại đây bạn sẽ tìm thấy st kết quả http://codepad.org/gc5oYnLW

2

Nếu bạn chỉ muốn tính theo thời gian tính bằng giây từ thời kỳ Unix (ngày 1 tháng 1 năm 1970 00:00:00 GMT) với múi giờ. Sử dụng mã bên dưới:

<?php 
date_default_timezone_set("UTC"); 
time()+date("Z"); 
0

Nó sẽ hoạt động mà không gặp bất kỳ sự cố nào.

Trong trường hợp nghi ngờ, kiểm tra xem nó với mã này:

<?php 
date_default_timezone_set('America/Virgin'); 
echo date('Y-m-d H:i:s T') . "\n"; 
date_default_timezone_set('UCT'); 
echo date('Y-m-d H:i:s T') . "\n"; 

Here is a codepad preview thuận tiện cho bạn.

Sự trở lại sẽ giống như thế này (với ngày cập nhật và thời gian tắt khóa học):

2017-12-11 03:09:58 AST 
2017-12-11 07:09:58 UCT 

Nếu thất bại, kiểm tra lại cấu hình máy chủ của bạn ... bắt đầu với tập tin PHP.ini của bạn.

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