Проблемы со сравнением разных временных меток

Я использую 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>";

    }

}

Тестированием я могу подтвердить, что есть возвращенные сделки, которые соответствуют условию (произошло менее пяти минут назад), однако в этом случае ничего не возвращается.

Отметки времени имеют другой формат? Вроде бы у меня все правильно.

Из Binance API (https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md):

Все поля, связанные со временем и меткой времени, указаны в миллисекундах.

Спасибо за помощь!


person cpcdev    schedule 16.09.2018    source источник
comment
Если вы хотите, чтобы сделки были совершены более 5 минут назад, вам нужно изменить $btc_trade_time >= $five_minutes_ago на $btc_trade_time < $five_minutes_ago.   -  person Nick    schedule 16.09.2018
comment
извините, я имею в виду менее пяти минут назад. Я обновил формулировку в вопросе.   -  person cpcdev    schedule 16.09.2018
comment
Похоже, что время торговли API измеряется сотыми долями секунды, поэтому вам следует изменить $btc_trade_time = strtotime($btc_trade['time']) на $btc_trade_time = $btc_trade['time']/100.   -  person Nick    schedule 16.09.2018
comment
Спасибо, но я по-прежнему получаю сделки, совершенные более 5 минут назад.   -  person cpcdev    schedule 16.09.2018
comment
Извините, должно было быть миллисекунды и делить на 1000...   -  person Nick    schedule 16.09.2018
comment
это исправило. спасибо @Ник!   -  person cpcdev    schedule 16.09.2018
comment
Большой. Рад, что смог помочь.   -  person Nick    schedule 16.09.2018


Ответы (1)


изменить на

$btc_trade_time = $btc_trade['time']/1000
person cpcdev    schedule 16.09.2018
comment
Хотя этот фрагмент кода может решить проблему, он не объясняет, почему и как отвечает на вопрос. Пожалуйста, включите объяснение кода, так как это действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для будущих читателей, и эти люди могут не знать причин вашего предложения кода. - person Luca Kiebel; 16.09.2018