2011-12-27 46 views
6

Tôi đang sử dụng cuộc gọi hàm date("D, m/d/Y h:i:s A T") để nhận thời gian ngày hiện tại nhưng thời gian trả lại khác với thời gian tôi thực hiện trong lệnh bash linux (giờ địa phương là CST và hàm ngày trả về php trong UTC). Tôi đã thử sử dụng $timezone = @system("date +%Z",$retval); để nhận múi giờ trong nỗ lực đặt múi giờ địa phương bằng cách sử dụng chức năng date_default_timezone_set(). Nhưng CST có vẻ không phải là một timezone_identifier hợp lệ.Cách nhận múi giờ địa phương bằng PHP?

Tóm lại, tôi chỉ cần có cùng một ngày và giờ làm ngày giờ địa phương.

+1

Một lần nữa, hãy dừng lại ký bài viết của mình. –

+0

Ok. Tôi không biết nó bị cấm. – Steve

Trả lời

10

Sử dụng múi giờ từ http://php.net/manual/en/timezones.php

Vì vậy, ví CST sử dụng:

<?php 
date_default_timezone_set("America/Chicago"); 

Nếu bạn chỉ có chữ viết tắt múi giờ và không phải là id múi giờ sau đó sử dụng:

<?php 
date_default_timezone_set(timezone_name_from_abbr("CST")); 
+0

+1 để là người đầu tiên. Lưu ý rằng người dùng có thể không phải là * Chicago *. Mặc dù thực sự CT, tốt nhất là sử dụng miền địa phương cụ thể của bạn. –

+0

vấn đề là tôi cần nó thực hiện theo chương trình vì vậy tôi không thể đi và sao chép các timezone_identifier hợp lệ chính xác mỗi khi tôi cần nó. Giá trị duy nhất tôi có là CST hoặc UTC và như vậy ... – Steve

+0

@StephaneKouakou Tôi đã thêm mã mẫu cho khi bạn chỉ có từ viết tắt múi giờ –

1

Mặc dù hệ thống và PHP nên ở cùng múi giờ, hãy đọc tài liệu cho date_default_timezone_set() để đặt ma múi giờ nually.

Lưu ý rằng CST là không phải cài đặt múi giờ hợp lệ. Tìm một số valid timezone cho vị trí của bạn.

0

Tôi nghĩ rằng tôi đã tìm thấy một chức năng tốt hơn: timezone_name_from_abbr()

+0

Nếu đây là câu trả lời đúng, vui lòng đánh dấu nó là chính xác. – rvighne

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