2010-06-22 39 views

Trả lời

14

Bạn có thể sử dụng strtotime để chuyển đổi chuỗi thành dấu thời gian UNIX, tính bằng giây. time() sẽ cung cấp cho bạn dấu thời gian UNIX hiện tại. Trừ họ để có được bao nhiêu tuổi, ngày tháng ở giây, và chia 60*60*24 để có được nó trong ngày

Nó cũng có thể làm được bằng DateTime::diff, mặc dù tôi thấy các chức năng cập nhật dễ dàng hơn so với sử dụng các lớp

+3

Don' t làm điều này, bạn sẽ thất bại thảm hại khi DST đến chơi: '' date_default_timezone_set ("Châu Âu/Amsterdam"); $ d1 = strtotime ("2013-10-27T00: 00: 00"); $ d2 = strtotime ("2013-10-28 00:00:00"); var_dump (($ d2- $ d1)/(60 * 60 * 24)); '' đầu ra: double (1.0416666666667) –

10
$today = strtotime(date('Y-m-d H:i:s')); 
$expireDay = strtotime($row['ExpireDate']); 
$timeToEnd = $expireDay - $today;