2012-03-31 37 views
7

Tôi đang cố gắng tạo danh sách lựa chọn bắt đầu từ ngày hiện tại của người dùng. Tôi muốn nó để nó được thiết lập để nửa đêm trong định dạng dấu thời gian unix.Tại sao strtotime của tôi ("hôm nay") không hoạt động?

Đây là tất cả những gì đang làm:

$today = strtotime('today'); 
echo $today; 

Đây là kết quả của tôi:

1333144800 

đó là: Thứ Sáu, ngày 30 tháng 3 2012 22:00:00 GMT theo Epoch Chuyển đổi

+3

Dường như múi giờ của máy chủ được đặt thành GMT + 2, vì vậy bạn thực sự nhận được kết quả chính xác. – Niko

+2

Nghiêm túc, phản ứng * của noone * đối với những thứ như thế này phải là "' strtotime' không hoạt động ". Điều gì tiếp theo, một lỗi trong 'strlen'? – Jon

Trả lời

15

Nếu bạn muốn strtotime() trả về dấu thời gian tương ứng với UTC (00:00:00 UTC thay vì ví dụ 00:00:00 UTC + 2, nếu hệ thống của bạn được đặt thành múi giờ có chênh lệch 2 giờ so với UTC/GMT), bạn cần xác định rằng:

$today = strtotime('today UTC'); 
+0

woww, hoạt động của nó, –

+0

cảm ơn bạn rất nhiều –

0

Bạn nên kiểm tra cấu hình múi giờ trong tệp php.ini của mình. Trong trường hợp của tôi (Tôi sống ở El Salvador) Tôi đã phải thay đổi nó như thế này:

date.timezone = America/El_Salvador 
2
strtotime($time) 

được thiết kế để trả về một timetamp unix, ý nghĩa, nó sẽ trả lại số giây kể từ ngày 1 tháng 1 năm 1970 . http://www.php.net/manual/en/function.strtotime.php

để làm được việc này, sử dụng một cái gì đó như:

$today = date("d/m/Y H:i:s", strtotime('today')); 
echo $today; 
0

Bạn có thể thiết lập đặc biệt thời gian cũng như trong ngày:

$today_midnight = strtotime('today UTC 00:00'); 
5

GMT (+0) thời gian

echo $today = strtotime('today GMT'); 
echo "<br>" . $today = date("d-m-Y H:i:s", $today); 

Chúng tôi hy vọng rằng máy chủ của bạn chạy ở giờ - đó là tốt nhất (đối với vận động với màn hình thời gian sau đó). Nếu không, bạn PHẢI điều chỉnh php.ini đặt "date.timezone = GMT" này.

Khi bạn hoàn thành công việc, bạn sẽ thấy 00:00 cùng với mã của tôi.

Sau đó, bạn phải phát triển chức năng (ví dụ DisplayDate()) trong kịch bản của bạn để hiển thị ngày của trang web của bạn một cách chính xác nếu

  • bạn đang không ở trong khu vực giờ
  • hoặc/và nếu bạn muốn cho người dùng của bạn để xem thời gian trong múi giờ của họ với lựa chọn múi giờ chẳng hạn.

DisplayDate() phải bao gồm hỗ trợ cho thay đổi ánh sáng ban ngày cũng (0 hoặc +1 giờ/mùa hè và mùa đông).

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