22 lines
1.4 KiB
JavaScript
22 lines
1.4 KiB
JavaScript
function updateTraveler() {
|
|
const dateValue = document.getElementById('traveler-time').value;
|
|
const selectedZone = document.getElementById('traveler-zone').value;
|
|
const date = dateValue ? new Date(dateValue) : new Date();
|
|
const amount = Number(document.getElementById('traveler-amount').value) || 0;
|
|
const gb = Number(document.getElementById('traveler-gb').value) || 0;
|
|
const usdToMxn = 17.2;
|
|
const usdToEur = 0.92;
|
|
const gib = gb * (1000 ** 3) / (1024 ** 3);
|
|
document.getElementById('traveler-output').textContent = [
|
|
`Selected zone: ${new Intl.DateTimeFormat([], { dateStyle: 'medium', timeStyle: 'short', timeZone: selectedZone }).format(date)}`,
|
|
`UTC: ${new Intl.DateTimeFormat([], { dateStyle: 'medium', timeStyle: 'short', timeZone: 'UTC' }).format(date)}`,
|
|
`$${amount.toFixed(2)} USD ~= $${(amount * usdToMxn).toFixed(2)} MXN ~= EUR ${ (amount * usdToEur).toFixed(2)}`,
|
|
`${gb.toFixed(0)} GB ~= ${gib.toFixed(2)} GiB`,
|
|
].join('\n');
|
|
}
|
|
|
|
document.getElementById('traveler-time').value = new Date(Date.now() - new Date().getTimezoneOffset() * 60000).toISOString().slice(0, 16);
|
|
['traveler-time', 'traveler-zone', 'traveler-amount', 'traveler-gb'].forEach((id) => document.getElementById(id).addEventListener('input', updateTraveler));
|
|
if ('serviceWorker' in navigator) navigator.serviceWorker.register('sw.js').catch(() => {});
|
|
updateTraveler();
|