【问题标题】:Issues Comparing Different Timestamps比较不同时间戳的问题
【发布时间】: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 &gt;= $five_minutes_ago 更改为 $btc_trade_time &lt; $five_minutes_ago
  • 抱歉,我的意思是不到五分钟前。我更新了问题中的措辞。
  • API交易时间好像是百分之一秒,所以你应该把$btc_trade_time = strtotime($btc_trade['time'])改成$btc_trade_time = $btc_trade['time']/100
  • 谢谢,但我仍然收到 5 分钟前发生的交易
  • 对不起,应该是毫秒并除以 1000...

标签: php rest date timestamp


【解决方案1】:

改成

$btc_trade_time = $btc_trade['time']/1000

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,但它没有解释为什么或如何回答这个问题。请include an explanation for your code,因为这确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
猜你喜欢
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
  • 2019-03-21
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多