2012-05-14 14 views
14

के साथ गतिशील दिनांक और समय मैं यह जानने का प्रयास कर रहा हूं कि मैं moment.js का उपयोग करके गतिशील दिनांक और समय कैसे प्रदर्शित कर सकता हूं।moment.js और setInterval

स्पष्ट रूप से मैं setInterval का सही उपयोग करने के लिए नहीं समझ सकता।

यदि संभव हो तो मैं jQuery के रूप में jQuery का उपयोग नहीं करना चाहूंगा। Js की आवश्यकता नहीं है।

यहां मेरे पास अब तक है: http://jsfiddle.net/37fLF/2/

$(document).ready(function() { 
    var datetime = $('#datetime'), 
     date = moment(new Date()), 
     update = function(){ 
      datetime.html(date.format('dddd, MMMM Do YYYY, h:mm:ss a')); 
     }; 
    update(); 
    setInterval(update, 1000); 
});​ 

उत्तर

21

मैं अपने कोड में कुछ संशोधनों कर दिया है:

ध्यान दें कि विधि अद्यतन ready ईवेंट हैंडलर

कोड के बाहर है:

var datetime = null, 
     date = null; 

var update = function() { 
    date = moment(new Date()) 
    datetime.html(date.format('dddd, MMMM Do YYYY, h:mm:ss a')); 
}; 

$(document).ready(function(){ 
    datetime = $('#datetime') 
    update(); 
    setInterval(update, 1000); 
}); 

काम कर डेमो: jsfiddle

+0

मैं वास्तव में आपके प्रयास की सराहना करता हूं। धन्यवाद! – bchr

+2

moment.js के नए संस्करण के साथ अपडेट किया गया क्योंकि jsfiddle टूटा हुआ है: http://jsfiddle.net/timrpeterson/37fLF/217/ –

+0

आपके अद्भुत उदाहरण के लिए धन्यवाद। क्या आप मेरी मदद कर सकते हैं कि उसी कोड के लिए स्थानीय समय के बजाय यूटीसी समय का उपयोग कैसे करें। –

2

अद्यतन समारोह के अंदर रखो

date = moment(new Date()); 

। अब तुम सिर्फ एक ही तिथि प्रिंट कर रहे हर दूसरे;)

+0

बहुत बहुत धन्यवाद! यह काम किया;) पीएस: मेरी पोस्ट की पहली पंक्ति पर जाना चाहिए "सभी को नमस्कार - यह मेरी पहली पोस्ट है"। मैंने बाद में इसे संपादित करने की कोशिश की लेकिन यह अपडेट नहीं होगा। – bchr

+0

मुझे लगता है कि सामान संपादित करने से पहले आपको कुछ बिंदुओं की आवश्यकता है। मुझे लगता है कि मैं इसे धक्का दे पाऊंगा, लेकिन यह मेरे लिए हो सकता है .. – Halcyon

+0

मैं टिप्पणियों में लाइन ब्रेक कैसे बना सकता हूं? क्या आप जानते हैं कि मैं स्ट्रिंग से कैसे बच सकता हूं? अगर तरह मेरे पास है: सोमवार, मई 14 वीं 2012, 22:51:01 और उदाहरण के लिए उत्पादन करना चाहते हैं: सोमवार, मई 14 वीं 2012, समय 22:51:01 है अगर मैं लिखना यह: ('dddd do MMMM YYYY,' + 'समय है' + 'एच: मिमी: एसएस') "समय है" बन जाता है: t10e ti55e i01। – bchr

3

फिर, अपने जवाब के लिए धन्यवाद। कोड मैं निम्नलिखित के साथ समाप्त हुआ। (नोट डेनिश i18n)

moment.lang('da'); 

var datetime = null, date = null; 

var datetime_update = function() { 
    date = moment(new Date()); 
    datetime.html(date.format('[Lige nu: ] dddd [d.] Do MMMM YYYY [kl.] HH:mm:ss')); 
}; 

$(document).ready(function() { 
    datetime = $('#datetime'); 
    datetime_update(); 
    setInterval(datetime_update, 1000); 
}); 

संपादित: यहाँ नौ महीने के बाद मैं इस quesiton मैं इस तरह से jQuery के बिना यह करने के लिए पता लगा पूछा (जैसा कि मैंने शुरू में पूछा)। संदेश यह है:

function date_time() { 
    now = moment().format('dddd [d.] Do MMMM YYYY [kl.] HH:mm:ss'); 
    document.getElementById('timer').innerHTML = now; 
    setTimeout(function() { date_time(); }, 1000); 
} 
date_time(); 

और फिर निश्चित रूप से जैसे किसी HTML आईडी के साथ इसका इस्तेमाल:

<span id="timer"></span> 
0

यह कैसे यह मेरे से भी जाना जाता है और इसकी वर्किंग यू इसे यहाँ

HTML 
की जांच कर सकते है

< एएसपी: लेबल आईडी = "LABEL1" runat = "सर्वर" पाठ = ''>

JavaScript 
< script language="javascript" type="text/javascript"> 
function date_time() 
{ 
var dt = new Date(); 
document.getElementById('<%=Label1.ClientID%>').innerHTML = dt; 
setTimeout(function() { date_time(); }, 1000); 
} 
date_time(); 
< /script> 
संबंधित मुद्दे