2009-04-18 23 views
5

किसी को भी कैसे चल लाइव जावास्क्रिप्ट समय बनाने के लिए पता है ..बनाना लाइव घड़ी जावास्क्रिप्ट

मैं इस php कोड

$expiredate = date('d m Y G:i:s', $rdate1); 
    $f_ex_date = explode(" ", $expiredate); 
    $f_ex_time = explode(":", $expiredate); 
    $_endDate = mktime($f_ex_date[0],$f_ex_date[1],$f_ex_date[2],$f_ex_date[1],$f_ex_date[0],$f_ex_date[2]); 
    $time = $_endDate - time(); 
    $days = floor($time/86400); 
    $hours = floor(($time-($days*86400))/3600); 
    $mins = floor (($time-($days*86400)-($hours*3600))/60); 
    $secs = floor ($time-($days*86400)-($hours*3600)-($mins*60)); 

    echo "Your account going to be expired in <span style=\"color: #C11B17;font-family:arial;font-size: 16px;\">".$days."</span> Days <span style=\"color: #C11B17;font-family:arial;font-size: 16px;\">".$hours."</span> Hours <span style=\"color: #C11B17;font-family:arial;font-size: 16px;\">".$mins."</span> Minutes <span style=\"color: #C11B17;font-family:arial;font-size: 16px;\">".$secs."</span> Seconds"; 

यह संभव यह लाइव चल तरह बनाने के लिए है ??

+0

पीएचपी के बारे में, आप http://php.net/strftime – whichdan

उत्तर

12

यहां यह कैसे करें। Working Demo

पहले, अपने HTML दस्तावेज़ के शीर्ष पर:

.datetime { 
    color: #C11B17; 
    font-family:arial; 
    font-size: 16px; 
} 

हम इस इसलिए हम अपने एचटीएमएल कोड को साफ कर सकते हैं एक छोटा सा है:

$rdate1 = 1240550032; // Fri, 24 Apr 2009 05:13:52 GMT 
$expiredate = date('d m Y G:i:s', $rdate1); 
$time = $rdate1 - time(); 
$days = floor($time/86400); 
$hours = floor(($time-($days*86400))/3600); 
$mins = floor(($time-($days*86400)-($hours*3600))/60); 
$secs = floor($time-($days*86400)-($hours*3600)-($mins*60)); 

printf(" 
    Your account is going to expire in 
    <span class='datetime' id='days'>%s</span> Days 
    <span class='datetime' id='hours'>%s</span> Hours 
    <span class='datetime' id='minutes'>%s</span> Minutes 
    <span class='datetime' id='seconds'>%s</span> Seconds 
", $days, $hours, $mins, $secs); 

मैं नहीं काफी यकीन है कि जहां हूँ उस मध्यम चरण से आप के लिए आया था, लेकिन ऊपर दिया गया कोड मुझे $rdate1 (संभवतः एक यूनिक्स टाइमस्टैम्प) और time() के बीच अंतर में अंतर देता है।

अंत में, हम एक बार पृष्ठ लोड समय अद्यतन करने के लिए जावास्क्रिप्ट के साथ कुछ इस तरह कर सकते हैं:

addEvent(window, 'load', function() { 
    var eDays = document.getElementById('days'); 
    var eHours = document.getElementById('hours'); 
    var eMinutes = document.getElementById('minutes'); 
    var eSeconds = document.getElementById('seconds'); 
    var timer; 
    timer = setInterval(function() { 
     var vDays = parseInt(eDays.innerHTML, 10); 
     var vHours = parseInt(eHours.innerHTML, 10); 
     var vMinutes = parseInt(eMinutes.innerHTML, 10); 
     var vSeconds = parseInt(eSeconds.innerHTML, 10); 

     vSeconds--; 
     if(vSeconds < 0) { 
      vSeconds = 59; 
      vMinutes--; 
      if(vMinutes < 0) { 
       vMinutes = 59; 
       vHours--; 
       if(vHours < 0) { 
        vHours = 23; 
        vDays--; 
       } 
      } 
     } else { 
      if(vSeconds == 0 && 
       vMinutes == 0 && 
       vHours == 0 && 
       vDays == 0) { 
       clearInterval(timer); 
      } 
     } 
     eSeconds.innerHTML = vSeconds; 
     eMinutes.innerHTML = vMinutes; 
     eHours.innerHTML = vHours; 
     eDays.innerHTML = vDays; 
    }, 1000); 
}); 


function addEvent(obj, type, fn) { 
    if (obj.attachEvent) { 
    obj['e'+type+fn] = fn; 
    obj[type+fn] = function(){obj['e'+type+fn](window.event);} 
    obj.attachEvent('on'+type, obj[type+fn]); 
    } else 
    obj.addEventListener(type, fn, false); 
} 
+2

इवेंट हैंडलर क्रॉस-ब्राउज़र बनाने के लिए संपादित किया गया। ओह। –

1

PHP, क्योंकि यह server-side, लाइव नहीं हो सकता है। आपको डेट मैनिपुलेशन (कम से कम, जो सामान बदलता है) करना होगा और जावास्क्रिप्ट का उपयोग करके डोम अपडेट करना होगा, जो client-side है।

स्टीव

+0

पर एक नज़र आप जानते हैं कि कैसे करते है करने के लिए चाहते हो सकता है? –

4

यह जावास्क्रिप्ट का एक छोटा सा के साथ ग्राहक पर संभव है।

  • प्रत्येक दूसरे

के भीतर आग एक ईवेंट हैंडलर सेट करें: इस तरह के jQuery के रूप में एक रूपरेखा है, जो सीमांत मदद की यहाँ हो जाएगा का उपयोग कर के बिना, बुनियादी विधि निम्न जैसा कुछ होगा ईवेंट हैंडलर:

  • वर्तमान दिनांक और समय को पुनः प्राप्त और स्वरूपित नया मान के साथ एक और तत्व की सामग्री वांछित के रूप में
  • अद्यतन

एक ठोस उदाहरण के रूप में निम्नलिखित समारोह एक नामित तत्व के साथ एक सरल दिनांक/समय अद्यतन स्थापित करेगा:

function clock(id) { 
    var target = document.getElementById(id); 
    if(target) { 
     var callback = function() { 
      var datetime = new Date().toLocaleString(); 
      target.innerHTML = datetime; 
     }; 
    callback(); 
     window.setInterval(callback, 1000); 
    } 
} 

नोट निकालते हैं और वर्तमान दिनांक/समय फ़ॉर्मेट करने के लिए new Date().toLocaleString() का उपयोग; प्रत्येक सेकेंड को कॉल करने के लिए कॉलबैक सेट अप करने के लिए window.setInterval() का उपयोग भी।

+0

मैं जावास्क्रिप्ट पर बहुत कमजोर हूं और मूल रूप से कुछ भी नहीं जानता, क्या आप जानते हैं कि इसे कैसे कोड करें? –

+1

ध्यान रखें कि यह, और जो भी घड़ी जेएस-आधारित, ग्राहक समय प्रदर्शित करेगा, सर्वर समय – Strae

+0

@DaNieL नहीं: उत्कृष्ट बिंदु; समय क्षेत्र में कोई अंतर आउटपुट की शुद्धता को प्रभावित कर सकता है, खासकर अगर (इस मामले में) खाते सर्वर पर स्थानीय समय के आधार पर समाप्त हो जाते हैं। फ़ॉर्मेटिंग से पहले समय समायोजित करने के लिए कोई ऑफ़सेट गणना जोड़ सकता है। – Rob

0

JS-Clock लाइव घड़ी के लिए सबसे अच्छा समाधान है। यह मिनी जेएस संस्करण केवल 4 केबी है। मैं इसकी सिफारिश करता हूं।

संबंधित मुद्दे