Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #311 (permalink)  
Старый 14.02.2018, 15:55
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

Мне стал интересен ещё один вопрос.

На самом сайте ЦБ РФ

Смотрел на других сайтах и информеров, на завтра курса нет, получается только у ЦБ?

Можно также вывести такой курс со стрелкой на завтра или это уже закрытая информация?
Ответить с цитированием
  #312 (permalink)  
Старый 14.02.2018, 16:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Что значит на завтра?
Ответить с цитированием
  #313 (permalink)  
Старый 14.02.2018, 19:02
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

Сообщение от laimas
Что значит на завтра?
На сайте ЦБ уже есть курс доллара на завтра, выше ссылка есть.
Ответить с цитированием
  #314 (permalink)  
Старый 14.02.2018, 19:04
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

laimas,
Центробанк по итогам сегодняшних торгов назначает официальный курс на завтра.

Курсы валют
                                     14.02.2018          15.02.2018
Доллар США $                руб. 57,7701       руб. ↓57,5899
Евро €                            руб. 71,1670       руб. ↑71,2329

У них все официальные курсы по датам.

Последний раз редактировалось Dilettante_Pro, 14.02.2018 в 19:10.
Ответить с цитированием
  #315 (permalink)  
Старый 14.02.2018, 19:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от spinastr
На сайте ЦБ уже есть курс доллара на завтра, выше ссылка есть.
В этой теме 300 постов с лишним и все об одном и том же - официальный курс валюты устанавливается по окончанию торгов на валютной бирже. Поэтому ваш планировщик и получает курс за предыдущий день в 0 часов. Это и будет курс на текущий день. Когда торги заканчиваются я не знаю, и будучи не финансистом не слежу за данным вопросом.

Если смысл "на завтра" означает, что и вам хочется сразу видеть курс измененный, а не просто как курс не на день текущий, то планировщик должен запрашивать курс не один раз в день, а раз в час, пол часа, четверть... бог его знает как вам горит.

А запись курса на сервере должна производится по итогам сравнения дат пришедшего курса и сохраненного ранее.

<?
$day = date('w');

if($day && $day<>1) {

    $dir = dirname(__FILE__);
    chdir($dir);

    $currency = json_decode(file_get_contents('current.json'));

    libxml_use_internal_errors();
    if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y'))) {

        $date = strtotime($xml->attributes()->Date);
        
        if($date > strtotime($currency->current->date)) {
        
            foreach ($xml->children() as $child) {
                if($child->NumCode==840) {
                    $usd = round((float)str_replace(',', '.', $child->Value), 2);
                    break;
                }
            }
    
            if($usd) {
        
                if($rate = $usd - $currency->current->value) $rate = $rate < 0 ? 1 : 2;
    
                $currency->previous = clone $currency->current;
                $currency->current->date = date('j.n.Y', $date);
                $currency->current->value = $usd;
                $currency->current->rate = $rate;
    
                chmod($dir, 0777);
                file_put_contents('current.json',json_encode($currency));
                chmod($dir, 0700);
            }
        }
    }
}
?>


PS. Можно даже убрать условие if($day && $day<>1) и запрашивать курс каждый день, все равно при равенстве дат пришедшего и сохраненного он не изменится на сервере.

Последний раз редактировалось laimas, 14.02.2018 в 19:34.
Ответить с цитированием
  #316 (permalink)  
Старый 14.02.2018, 22:03
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

laimas,

Понятно, просто скопировать и вставить?
А в js менять ничего не нужно?
Ответить с цитированием
  #317 (permalink)  
Старый 15.02.2018, 00:56
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

spinastr,

Вроде всё работает


Верно скрипт дописал?

<script> 
//именно такое и получит Ajax 
$.getJSON("доме.ру", function(data) { 
$('.usddata').html(data.current.date);
$('.usddata2').html(data.previous.date);
//и вот тут данные этого объекта помещаются на свои места 
$.each(data, function(k, o) { 
$('.'+k).html("$ " + o.value + ' <b class=' + ['','down','up'][o.rate] +'>' + ['','▼','▲'][o.rate] +'</b>').attr("title", o.date) 
}) 
}); 
</script>

Последний раз редактировалось spinastr, 15.02.2018 в 14:46.
Ответить с цитированием
  #318 (permalink)  
Старый 15.02.2018, 03:15
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

Странно на одной странице сайта, после скролинга начинает мигать мышка при наведении и показе даты

.attr("title", o.date)


На этой странице установлено два курса в div блоке. Как бы отдельная страница с полным курсом.

Последний раз редактировалось spinastr, 15.02.2018 в 03:41.
Ответить с цитированием
  #319 (permalink)  
Старый 15.02.2018, 05:45
Профессор
Отправить личное сообщение для spinastr Посмотреть профиль Найти все сообщения от spinastr
 
Регистрация: 02.05.2016
Сообщений: 390

laimas,
Если я попробую в ваш скрипт вставить Яндекс погоду? https://pogoda.yandex.ru/static/cities.xml
То смогу тоже вывести погоду так? Как и валюту?
Ответить с цитированием
  #320 (permalink)  
Старый 15.02.2018, 05:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от spinastr
$('.usddata').html(data.current.date);
$('.usddata2').html(data.previous.date);
Это из каких соображений и зачем?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод контента в модалном окне, чтобы к нему можно было обратиться по ссылке decadent42 jQuery 3 11.04.2016 15:12
Преключатель валют alexmixaylov jQuery 7 21.10.2014 13:10
Проблема с выводом курса валют bubanay Элементы интерфейса 0 20.12.2013 20:42
Вывод переменных MasterHrust Javascript под браузер 4 03.08.2011 15:41
Вывод данных в Друпал 6 из MySQL, небольшая работа torquemada Работа 1 22.05.2011 17:05