【发布时间】:2018-09-16 01:02:07
【问题描述】:
我正在使用 Binance REST API 来获取之前的交易信息:
端点:https://api.binance.com/api/v1/trades?symbol=BTCUSDT
$btc_trades = file_get_contents('https://api.binance.com/api/v1/trades?symbol=BTCUSDT');
$btc_trades = json_decode($btc_trades, true);
$five_minutes_ago = strtotime('-5 minutes');
echo "five minutes ago: " . $five_minutes_ago . "<br><br>";
foreach ($btc_trades as $btc_trade) {
$btc_trade_time = strtotime($btc_trade['time']);
$btc_trade_total = $btc_trade['qty'] * $btc_trade['price'];
if ($btc_trade_time >= $five_minutes_ago) {
$btc_trade_time = $btc_trade['time'];
echo "Time: " . $btc_trade_time . "<br>";
echo "Qty: " . $btc_trade['qty'] . "<br>";
echo "Price: $" . $btc_trade['price'] . "<br>";
echo "Total: " . $btc_trade_total . "<br><br>";
}
}
我可以通过测试确认有返回的交易满足条件(发生在不到五分钟前),但在这种情况下没有返回任何东西。
时间戳的格式是否不同?好像我的一切都是正确的。
来自币安 API (https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md):
所有时间和时间戳相关的字段都以毫秒为单位。
感谢您的帮助!
【问题讨论】:
-
如果您想要超过 5 分钟前的交易,您需要将
$btc_trade_time >= $five_minutes_ago更改为$btc_trade_time < $five_minutes_ago -
抱歉,我的意思是不到五分钟前。我更新了问题中的措辞。
-
API交易时间好像是百分之一秒,所以你应该把
$btc_trade_time = strtotime($btc_trade['time'])改成$btc_trade_time = $btc_trade['time']/100 -
谢谢,但我仍然收到 5 分钟前发生的交易
-
对不起,应该是毫秒并除以 1000...