2013-06-10 12 views
5

Tôi cần thêm 15 phút vào thời điểm hiện tại. Ví dụ: bây giờ là 20:48, cần thêm 15 phút, vì vậy bây giờ nó sẽ là 21:03, nhưng tôi cần phải đặt 21:15, nghĩa là, nó phải là bội số của 15,30,45,00. Trợ giúp/hướng dẫn trợ giúp sẽ hữu ích.Thêm 15 phút vào thời gian hiện tại và chụp nhanh khoảng 15 phút

<?php 
$current_date_time = date('d/m/Y H:i:s'); 
$current_date = date("d/m/Y H:i", strtotime($current_date_time."+15 minutes")); 
echo $current_date;exit; 
+2

http://php.net/manual/en/datetime.add.php – ChrisW

+0

20:48 -> 21:03 -> 21:15? – Raptor

+0

@deceze: bạn đã đọc tiêu đề chưa ?? !! ;-P (một câu trả lời cho http://stackoverflow.com/questions/17022361/need-to-add-15-mintues-to-current-time#comment24601935_17022450) – zerkms

Trả lời

15

Dưới đây là một ví dụ đơn giản

//what time is it? 
$t=time(); 

//how long is our interval? 
$interval=15*60; 

//we can calculate when the last interval started by subtracting $t % $interval 
$last = $t - $t % $interval; 

//so now we know when the next interval will start... 
$next = $last + $interval; 

echo "Next interval at ".strftime('%H:%M:%S', $next)."\n"; 

Bạn trông giống như bạn có thể muốn thêm 2 * $ khoảng vào khoảng cuối cùng, nhưng bạn sẽ có thể thích ứng này để phù hợp với bạn.

+7

OMG ai đó đã đọc câu hỏi. Gọi bác sĩ! – PeeHaa

+1

Thật là một giải pháp tuyệt vời! – Dale

+0

Cảm ơn bạn rất nhiều :) – Vimalnath

2

Chỉ cần để sửa bài của tôi:

$time = time(); 
    $last_time = ($time - ($time % (15 * 60))); 
    $in15mins = $last_time+ (15 * 60); 
    echo 'Now:  '. date('Y-m-d H:i') ."\n"; 
    echo 'in 15 mins: '. date('Y-m-d H:i', $in15mins) ."\n"; 

Tôi nghĩ rằng nó là khá tự giải thích. Tối ưu hóa nó, sử dụng nó.

+0

điều này là thiếu sót, hãy xem xét điều gì sẽ xảy ra nếu cả hai gọi đến time() trả về các kết quả khác nhau. –

+0

Đã sửa lỗi. Cảm ơn bạn đã gợi ý :) –

+0

Còn về việc rút tiền lại của bạn thì sao? :) –

1
$current_date_time = date('d/m/Y H:i:s'); 
echo $current_date_time."<br>"; 
$current_date = date("d/m/Y H:i", strtotime($current_date_time."+15 minutes")); 
echo $current_date."<br>"; 
$minutes = date("i",strtotime($current_date)); 
$min = ''; 
if($minutes > 0 && $minutes <15){ 
    $min = 15 - $minutes; 
} else if($minutes > 15 && $minutes <30){ 
     $min = 30 - $minutes; 
} else if($minutes > 30 && $minutes <45){ 
     $min = 45 - $minutes; 
} else { 
     $min = 59 - $minutes; 
     $min++; 
} 

$newdate = date("d/m/Y H:i", strtotime($current_date."+".$min." minutes")); 

echo $newdate; 

Sử dụng mã ở trên. điều này đang làm việc cho tôi.

0
$currentTimeStamp=strtotime('now'); 
$nextInterval=date("Y-m-d H:i", strtotime("+15 minutes", $currentTimeStamp)); 
dump($nextInterval); 
+0

Chào mừng bạn đến với Stack Overflow! Mặc dù đoạn mã này có thể giải quyết được sự cố, nhưng nó không giải thích tại sao hoặc cách nó trả lời câu hỏi. Vui lòng [đưa ra giải thích cho mã của bạn] (// meta.stackexchange.com/q/114762/269535), vì điều đó thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. ** Cờ/người đánh giá: ** [Đối với các câu trả lời chỉ có mã như câu trả lời này, ghi chú, đừng xóa!] (// meta.stackoverflow.com/a/260413/2747593) –