Edit in JSFiddle

const $result	= document.querySelector('#result');
const $input 	= document.querySelector('#input');
const $timer 	= document.querySelector('#timer');
const $update	= document.querySelector('#update');
const $swap 	= document.querySelector('#swap');
const $c_from	= document.querySelector('#c-from');
const $c_to 	= document.querySelector('#c-to');

const urlApi = (c_from, c_to) =>
	`https://api.fixer.io/latest?base=${c_from}`; // &symbols=${c_to}`;

const ajaxRequest = () => Rx.DOM.ajax({
    url: urlApi($c_from.value, $c_to.value),
    responseType: 'json',
});

const formatResponse = val => ({
    datetime: Date.now(),
    rate: val.response.rates[$c_to.value],
});

const update$ = Rx.Observable.fromEvent($update, 'click')
        .startWith('°-°')
        .switchMap(() => converter$)
        .publish()
        .refCount();

const timer$ = Rx.Observable.interval(1e3)
        .startWith(Date.now())
        .map(Date.now);

const converter$ = Rx.Observable.interval(9e3)
        .startWith('°‿°')
        .flatMap(ajaxRequest)
        .map(formatResponse);

const input$ = Rx.Observable.fromEvent($input, 'keyup')
        .startWith($input.value)
        .distinctUntilChanged()
        .map(() => $input.value);

Rx.Observable
    .combineLatest(input$, update$,
        function (s1, s2) {
            return +s1 * +s2.rate;
        })
    .subscribe(
    	function (val) {
            var data = $c_from.value !== $c_to.value ? val : $input.value;

            $result.textContent = Number(data).toFixed(4);
        });
    	

Rx.Observable
    .combineLatest(timer$, update$,
        function (s1, s2) {
            return (s1 <= s2.datetime ? 0 : (s1 - s2.datetime) / 1000).toFixed();
        })
    .subscribe(
    	function (val) {
            $timer.textContent = val;
        });

Rx.Observable.fromEvent($c_from, 'change')
    .subscribe(() => $update.click());

Rx.Observable.fromEvent($c_to, 'change')
    .subscribe(() => $update.click());

Rx.Observable.fromEvent($swap, 'click')
    .subscribe(function () {
        [$c_from.value, $c_to.value] = [$c_to.value, $c_from.value];
        $update.click();
    });
<input id="input" type="text" value="1">
<span>
<select id="c-from">
    <option value="AUD">AUD</option>
    <option value="BGN">BGN</option>
    <option value="BRL">BRL</option>
    <option value="CAD">CAD</option>
    <option value="CHF">CHF</option>
    <option value="CNY">CNY</option>
    <option value="CZK">CZK</option>
    <option value="DKK">DKK</option>
    <option value="EUR">EUR</option>
    <option value="GBP">GBP</option>
    <option value="HKD">HKD</option>
    <option value="HRK">HRK</option>
    <option value="HUF">HUF</option>
    <option value="IDR">IDR</option>
    <option value="ILS">ILS</option>
    <option value="INR">INR</option>
    <option value="JPY">JPY</option>
    <option value="KRW">KRW</option>
    <option value="MXN">MXN</option>
    <option value="MYR">MYR</option>
    <option value="NOK">NOK</option>
    <option value="NZD">NZD</option>
    <option value="PHP">PHP</option>
    <option value="PLN">PLN</option>
    <option value="RON">RON</option>
    <option value="RUB">RUB</option>
    <option value="SEK">SEK</option>
    <option value="SGD">SGD</option>
    <option value="THB">THB</option>
    <option value="TRY">TRY</option>
    <option value="USD" selected>USD</option>
    <option value="ZAR">ZAR</option>
</select>
&#61; <span id="result"></span>
<select id="c-to">
  <option value="AUD">AUD</option>
  <option value="BGN" selected>BGN</option>
  <option value="BRL">BRL</option>
  <option value="CAD">CAD</option>
  <option value="CHF">CHF</option>
  <option value="CNY">CNY</option>
  <option value="CZK">CZK</option>
  <option value="DKK">DKK</option>
  <option value="EUR">EUR</option>
  <option value="GBP">GBP</option>
  <option value="HKD">HKD</option>
  <option value="HRK">HRK</option>
  <option value="HUF">HUF</option>
  <option value="IDR">IDR</option>
  <option value="ILS">ILS</option>
  <option value="INR">INR</option>
  <option value="JPY">JPY</option>
  <option value="KRW">KRW</option>
  <option value="MXN">MXN</option>
  <option value="MYR">MYR</option>
  <option value="NOK">NOK</option>
  <option value="NZD">NZD</option>
  <option value="PHP">PHP</option>
  <option value="PLN">PLN</option>
  <option value="RON">RON</option>
  <option value="RUB">RUB</option>
  <option value="SEK">SEK</option>
  <option value="SGD">SGD</option>
  <option value="THB">THB</option>
  <option value="TRY">TRY</option>
  <option value="USD">USD</option>
  <option value="ZAR">ZAR</option>
</select>
</span>
<br>
<span class="info">updated <span id="timer">0</span> seconds ago
<span id="update">update now</span> /
<span id="swap">swap</span>
</span>
input[type=text] {
  width: 64px;
  padding: 7px;
  font-size: 12px;
  background-color: #eee;
  border: 1px solid #ddd;
}

.info {
  font-size: 85%;
  color: #777;
}

#result {
  font-size: 93%;
}

#update,
#swap {
  font-weight: bold;
  cursor: pointer;
}

select {
  border: 1px solid #111;
  background: transparent;
  width: 44px;
  padding-left: 8px;
  font-size: 13px;
  border: none;
  background: #eee;
  height: 34px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

External resources loaded into this fiddle: