Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод курса валют (https://javascript.ru/forum/misc/72548-vyvod-kursa-valyut.html)

spinastr 12.02.2018 14:48

Цитата:

Сообщение от laimas
Вы запросили за текущий день курс, которого еще нет, поэтому и 0.

наверно так и есть, просто решил проверить и запустил крон в ручную, там кнопка обновить информацию

laimas 12.02.2018 14:49

Цитата:

Сообщение от spinastr
то есть курса на сегодня нет ссылка

Естественно, поэтому и не запрашивайте его раньше времени.

spinastr 12.02.2018 14:49

то есть если в 0:00 каждый день запрашивать всё будет нормально? и 0 больше не будет?

laimas 12.02.2018 14:58

Ну я же русским языком написал за какой период запрашивается курс. Сейчас 12, торги еще не закончены, курса нового на этот день еще нет. Для всех торгующих курс на сегодня, это курс 11 числа.

В 0:00 (можете не 00 минут сделать, а 5, дабы учесть погрешности во времени) часов (это будет 13 уже) будет запрошен курс за 10-12, в это время новый курс уже будет установлен. В json он будет записан по датой 13, а предыдущий под датой 12.

spinastr 12.02.2018 15:06

Ясно , спасибо!

laimas 12.02.2018 15:35

Сервер должен работать обзательно по московскому часовому поясу, любой часовой пояс восточнее Москвы будет приводить к такой ошибке.

spinastr 12.02.2018 16:00

laimas,
Всё верно?

laimas 12.02.2018 16:18

Мне откуда знать когда это происходило. Если эта дата/время соответствует московскому то да.

spinastr 12.02.2018 16:43

laimas,
да соответствует, можете подсказать тут?

spinastr 13.02.2018 00:17

laimas,

Крон сработал и обновил в 0:05 по Московскому, одни нули

{"current":{"date":"13.2.2018","value":0,"rate":0},"previous":{"date":"12.2.2018","value":0,"rate":0}}

У ЦБ на 13 число курс отображается и нет нулей ссылка

Что тут может быть не так? Всё посмотрел, крон точно проверил, обновил всё сам и вовремя.
<?
$dir = dirname(__FILE__);
chdir($dir);

libxml_use_internal_errors();
if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.date('d/m/Y', strtotime('-3 day')).'&date_req2='.date('d/m/Y', strtotime('-1 day')).'&VAL_NM_RQ=R01235')) {
    $last = round((float)str_replace(',', '.', current($xml->Record[0]->Value)), 2);
    $usd_prev = round((float)str_replace(',', '.', current($xml->Record[1]->Value)), 2);
    $usd_curr = round((float)str_replace(',', '.', current($xml->Record[2]->Value)), 2);
    
    chmod($dir, 0777);
    
    file_put_contents('current.json',
        json_encode(
            array(
                'current' => array(
                'date' => date('j.n.Y'),
                'value' => $usd_curr,
                'rate' => intval($usd_curr > $usd_prev) 
            ),
            'previous' => array(
                'date' => date('j.n.Y', strtotime('-1 day')),
                'value' => $usd_prev,
                'rate' => intval($usd_prev > $last)
            )
        ))
    );
    
    chmod($dir, 0700);
}
?>


Часовой пояс GMT +3, время: 11:48.