2012-10-14 33 views
9

Tôi muốn thêm 1 ngày và sau đó trừ (trừ) 1 giây từ một thời điểm nhất định.Trừ một giây từ một thời điểm nhất định

tôi đã làm:

$fromDate = date("Y-m-d", strtotime("2012-09-28")).' 00:00:00'; 
$date = strtotime(date("y-m-d H:m:s", strtotime($fromDate)) . " +1 day") - 1; 
$toDate = date('Y-m-d H:m:s', $date); 
echo $toDate; 

nhưng thay vì 2012-09-28 23:59:59 nó trả 2012-09-29 00:09:59

Tôi đang làm gì sai?

+0

vấn đề là ở định dạng ngày của bạn, phần "H: m: s" ... bạn đang in "Tháng giây giờ" – miro

Trả lời

14

Bạn sẽ làm tròn và tròn thay vì đi đến điểm trong mã của bạn. Đây là giải pháp của tôi với DateTime đối tượng:

$time = new DateTime("2012-09-28"); 
$time->modify("+1 day"); 
$time->modify("-1 second"); 

var_dump($time); 

Hoặc, nếu bạn chỉ cần giây cuối cùng trong ngày, tại sao không chỉ:

$time = "2012-09-28"; 
$time .= " 23:59:59"; 

Vì nó không chắc rằng số giây/phút/giờ một ngày để thay đổi.

2

Nếu tôi hiểu bạn đúng, bạn chỉ muốn giây cuối cùng trong ngày nhất định, đúng không?

Nếu đó là trường hợp, sau đó bạn có thể chỉ cần có:

$theDate = "2012-09-28"; 
$fromDate = $theDate." 00:00:00"; 
$toDate = $theDate." 23:59:59"; 
+0

Đó là một dung dịch. Nhưng nó sẽ hoạt động. – glarkou

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