2012-05-14 3 views
14

moment.jsを使用して動的日時を表示する方法を調べようとしています。moment.jsとsetIntervalを使用した動的日時

どうやら私はsetIntervalを正しく使用することはできません。

可能であれば、jQueryをmoment.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

はjsfiddleが壊れているため、新しいバージョンのmoment.jsで更新されました:http://jsfiddle.net/timrpeterson/37fLF/217/ –

+0

あなたの素晴らしい例をありがとう。同じコードに対して現地時間ではなくUTC時間を使用する方法を教えてください。 –

2

更新関数内

date = moment(new Date()); 

を入れてください。今、あなたはちょうど毎秒同じ日付を印刷している;)

+0

ありがとうございました!それは働いた;) PS:私のポストの最初の行は "こんにちは皆 - これは私の最初の投稿です"と行かなければならない。 後で編集しようとしましたが、更新されませんでした。 – bchr

+0

あなたはものを編集する前にいくつかのポイントが必要だと思います。私はそれをプッシュすることができたと思うが、それはちょうど私のためかもしれない.. – Halcyon

+0

私はコメントで改行を行うには? 文字列を "エスケープ"する方法を知っていますか? 私が持っているかのように: 月曜日、5月14日2012、10時51分01秒午後 そして、例えば出力したい: 私が書く場合は月曜日、5月14日2012、時間は10時51分01秒午後 です ( 'dddd MMMM YYYYを実行する' + '時間は' + 'h:mm:ss') 「時間は」になります: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); 
}); 

EDIT:私はjQueryのせずにそれを行うには、この方法を考え出したこのquesitonを求めてここに9ヶ月後に(私が最初に尋ねたとして)。

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のIDとそれを使用します:ここにある

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

これはそれが私が行くと、その作業uはここ

HTML 
それを確認することができる方法です

< ASP:ラベルID = "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> 
関連する問題