2011-12-02 38 views
5

Tôi có đoạn mã sau:PHP DateTime Chức năng

$now = '2011-12-01 22:32:33'; 
$datetime = '2011-12-01 00:07:27'; 


$nowObj = new DateTime($now); 
$datetimeObj = new DateTime($datetime); 

$diff = $datetimeObj->diff($nowObj); //leaving this in screws up the next line 

number_format(1134); //this becomes NaN 

Khi tôi chạy qua đoạn mã này và rời khỏi diff = ... dòng $ trong, nó messes với những con số khác và toán mà tôi làm sau trong mã. Ví dụ, number_format của tôi (1134); sau này trở thành NaN. Tôi đang sử dụng một ngăn xếp XAMPP với PHP 5.3.1. Đây có phải là một lỗi?

+0

mmm ... bạn có thể thêm mã "lộn xộn" không? –

Trả lời

5

Could this be related, hmm ...

Nếu bạn đang ở trên cửa sổ, tôi sẽ đảm bảo cài đặt múi giờ được đặt chính xác. Các ý kiến ​​trên php.net chỉ ra một vài điều kỳ quặc và hành vi buggy dưới cửa sổ, có thể nghiêm túc xem xét sử dụng một phương pháp thay thế cho diffing ngày của bạn nếu vấn đề vẫn tồn tại.

+0

tuyệt vời, nó luôn chỉ hoạt động tiếp theo mà phá vỡ, tôi đã có lỗi này cho một lúc – cdub

+0

quá ước gì có thể cung cấp cho bạn nhiều điểm hơn – cdub

+0

Không vấn đề gì, họ trỏ đến một bugfix trong bài viết đó, nếu việc sửa chữa không hoạt động hoặc bạn Phiên bản php gần đây hơn, xin vui lòng xem xét đăng lại trên bảng tìm kiếm của bạn, hoặc mở lại một vấn đề về điều này? Nó sẽ giúp làm cho php tốt hơn. Hoặc, ít nhất là đối tượng ngày tháng, có thể. : o) – stefgosselin

0

Có vẻ như một vấn đề locale. hev bạn đặt múi giờ ở php.ini?

[Date] 
date.timezone = Europe/Rome 

Châu Âu/Rome là múi giờ của tôi;)

hoặc bạn cũng có thể thêm

ini_set("date.timezone","Europe/Rome"); 

trong mã của bạn