2013-01-06 73 views
0

我試圖讓這顯示多少天,直至產品到期,而當有0天,我想顯示一條消息,它已經過期了一個倒數計時器:倒計時PHP的錯誤

<?php 
$target = mktime(0, 0, 0, 1, 7, 2013) ; 
$today = time() ; 
$difference =($target-$today) ; 
$days =(int) ($difference/86400) ; 
if ($today == $target) 
{ 
print "this product has expired"; 
} 
else 
{ 
print "This product expires in $days days"; 
} 
?> 

當您訪問該頁面時,即使今天與目標日期相同,它也會始終顯示第二條消息。 如果可能的話,你能告訴我如何在不重新加載頁面的情況下顯示分鐘和秒鐘? 我還想在有0天/分鐘的時候更新MySql數據庫,這是否可能。不需要有一個開始/停止按鈕。

感謝您的幫助提前!

+0

看那廣告下方的右側列。 –

+0

嘗試strtotime(「2013-07-01」);而不是mktime –

+0

使用的strcmp()比較兩個字符串 – user1929959

回答

1

我想你已經得到了解決方案。但如果有人仍在尋找這個解決方案,那麼這可能會有所幫助。在這個解決方案中,我們可以拆分幾天,幾小時,幾分鐘,幾秒鐘。

Reverse timer from javascript: 

var target_date = new Date('Aug 01 2014 20:47:00').getTime(); 
    var days, hours, minutes, seconds; 
    var countdown = document.getElementById('timeremaining'); 
    var countdownTimer = setInterval(function() { 
     var current_date = new Date().getTime(); 
     var seconds_left = (target_date - current_date)/1000; 

     days = parseInt(seconds_left/86400); 
     seconds_left = seconds_left % 86400; 

     hours = parseInt(seconds_left/3600); 
     seconds_left = seconds_left % 3600; 
     minutes = parseInt(seconds_left/60); 
     seconds = parseInt(seconds_left % 60); 

     if(days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0) 
     { 
      document.getElementById('timeremaining').innerHTML = ''; 
      clearInterval(countdownTimer);    
     } 
     else 
     {  
      if(days>0) 
       { 
       days= days+'d,'; 
       } 
       else 
       { 
       days=''; 
       }    
      countdown.innerHTML ='(' + days + checkTime(hours) + ':'+ checkTime(minutes) + ':' + checkTime(seconds) +' remaining)';  
     } 
    }, 1000); 

    function checkTime(i) { 
     if (i < 10) {i = '0' + i}; 
     return i; 
    }  
1

這裏有兩個問題。首先是$ today和$ target都以秒爲單位。

這意味着除非您在與目標完全相同的第二頁訪問頁面,否則您不會看到該消息。

這也意味着任何時候過期還將工作,這可能不是你想要的。嘗試使用:

if($today > $target) 

要顯示分鐘和秒鐘,你應該看看可以倒計時的JavaScript。