Javascript 如何计算自最近一次阻塞(通过blockchain.info的api)以来经过的时间?
我已经设法使websocket连接正常工作,并且正在从ping_block和blocks_sub接收数据。但是,我很难计算当前日期和从blockchain.info的api接收的块日期之间的差异。有人能帮我计算最近一次阻塞后经过的时间吗 另外,如何保持连接打开,以便它更新innerHTML对象 如有任何建议,将不胜感激。谢谢Javascript 如何计算自最近一次阻塞(通过blockchain.info的api)以来经过的时间?,javascript,bitcoin,blockchain,Javascript,Bitcoin,Blockchain,我已经设法使websocket连接正常工作,并且正在从ping_block和blocks_sub接收数据。但是,我很难计算当前日期和从blockchain.info的api接收的块日期之间的差异。有人能帮我计算最近一次阻塞后经过的时间吗 另外,如何保持连接打开,以便它更新innerHTML对象 如有任何建议,将不胜感激。谢谢 <script language="javascript" type="text/javascript"> var wsUri = "wss://ws.blo
<script language="javascript" type="text/javascript">
var wsUri = "wss://ws.blockchain.info/inv";
var output;
function init()
{
output = document.getElementById("output");
initWebSocket();
}
function initWebSocket()
{
// init blockchain websocket (activity, blocks)
var blockchain = new WebSocket('wss://ws.blockchain.info/inv');
blockchain.onerror = function (error){ console.log('connection.onerror',error); };
blockchain.onopen = function ()
{
writeToScreen("Connection to blockchain.info succesful.");
blockchain.send( JSON.stringify( {"op":"ping_block"} ) );
blockchain.send( JSON.stringify( {"op":"blocks_sub"} ) ); // subscribe to new blocks
};
blockchain.onmessage = function (message)
{
var response = JSON.parse(message.data);
var date = new Date(0);
date.setUTCSeconds( response.x.time );
if( response.op == "utx")
{
var amount = 0;
for(var i=0;i<response.x.out.length;i++)
amount += response.x.out[i].value;
// amount is in satoshi
// 1 BTC = 100,000,000 Satoshi
([url='https://en.bitcoin.it/wiki/activity)']https://en.bitcoin.it/wiki/activity)[/url]
response.amount = amount / 100000000;
response.type = TYPE_TRANSACTION;
response.index = index++;
response.date = date;
}
else if( response.op == "block" )
{
response.type = TYPE_BLOCK;
response.date = date;
}
if( DEBUG )
console.log( response.op, response );
response.date = date;
writeToScreen('<span style="color: blue;">Most recent block found
on: </span>' + response.date);
};
}
function writeToScreen(message)
{
var pre = document.createElement("p");
pre.innerHTML = message;
output.appendChild(pre);
}
// constants
var TYPE_TRANSACTION = "transaction";
var TYPE_TRADE = "trade";
var TYPE_BLOCK = "block";
var MINUTE = 1000*60;
var HOUR = MINUTE*60;
var MIN_MINUTES = 1;
var MAX_MINUTES = 10;
var DEBUG = true;
var activity = [];
var index = 0;
window.addEventListener("load", init, false);
您尚未提供任何必须使用的代码示例或示例数据。您可以输出从api接收的日期对象吗?您能将其解析为日期对象吗?添加了当前代码。不确定如何以正确的格式获取当前时间,以便与最近块的时间戳进行比较。