{"id":2884,"date":"2026-04-03T23:04:15","date_gmt":"2026-04-03T21:04:15","guid":{"rendered":"https:\/\/bio-me.bio\/?page_id=2884"},"modified":"2026-04-03T23:04:15","modified_gmt":"2026-04-03T21:04:15","slug":"uv-exposure-time-calculator","status":"publish","type":"page","link":"https:\/\/bio-me.bio\/?page_id=2884","title":{"rendered":"UV Exposure Time Calculator"},"content":{"rendered":"\n<div class=\"eco-tool wp-block-group\" id=\"eco-tool-uv-p93z4\">\n  <div class=\"eco-tool__header\">\n    <h2 class=\"eco-tool__title\">UV Exposure Time Calculator<\/h2>\n    <p class=\"eco-tool__lead\">\n      Estimate how quickly sun exposure risk can increase based on UV index, skin type, and sunscreen use.\n    <\/p>\n  <\/div>\n\n  <form class=\"eco-tool__form\" id=\"eco-uv-form-p93z4\" novalidate>\n    <div class=\"eco-tool__grid3\">\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"uvindex-p93z4\">UV index<\/label>\n        <input class=\"eco-tool__input\" id=\"uvindex-p93z4\" type=\"number\" min=\"0\" max=\"15\" step=\"1\" value=\"7\" inputmode=\"numeric\" \/>\n        <div class=\"eco-tool__hint\">Use your local UV forecast if available.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"skintype-p93z4\">Skin type<\/label>\n        <select class=\"eco-tool__input\" id=\"skintype-p93z4\">\n          <option value=\"1\">Very fair<\/option>\n          <option value=\"2\">Fair<\/option>\n          <option value=\"3\" selected>Medium<\/option>\n          <option value=\"4\">Olive<\/option>\n          <option value=\"5\">Brown<\/option>\n          <option value=\"6\">Dark brown \/ black<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Used for a simple sensitivity estimate.<\/div>\n      <\/div>\n\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"sunscreen-p93z4\">Sunscreen use<\/label>\n        <select class=\"eco-tool__input\" id=\"sunscreen-p93z4\">\n          <option value=\"1\">No sunscreen<\/option>\n          <option value=\"1.5\" selected>SPF used normally<\/option>\n          <option value=\"2\">SPF used carefully<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">A simple protective multiplier.<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-tool__actions\">\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn\" id=\"calc-p93z4\">Calculate<\/button>\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn eco-tool__btn--ghost\" id=\"reset-p93z4\">Reset<\/button>\n      <div class=\"eco-tool__error\" id=\"error-p93z4\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n\n  <div class=\"eco-tool__result\" id=\"result-p93z4\" hidden>\n    <h3 class=\"eco-tool__subtitle\">Result<\/h3>\n\n    <div class=\"eco-tool__cards\">\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Estimated caution time<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"time-p93z4\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"level-p93z4\"><\/div>\n      <\/div>\n\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Recommendation<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"tip-p93z4\"><\/div>\n      <\/div>\n    <\/div>\n\n    <p class=\"eco-tool__note\">\n      This is a simplified educational estimate, not medical advice.\n    <\/p>\n  <\/div>\n\n  <details class=\"eco-tool__details\">\n    <summary class=\"eco-tool__summary\">How we calculate<\/summary>\n    <div class=\"eco-tool__details-body\">\n      <p class=\"eco-tool__text\">\n        We start with a simple baseline exposure tolerance by skin type, then adjust it using UV index and sunscreen.\n      <\/p>\n      <ul class=\"eco-tool__list\">\n        <li><strong>Very fair:<\/strong> most sensitive<\/li>\n        <li><strong>Medium:<\/strong> moderate sensitivity<\/li>\n        <li><strong>Darker skin types:<\/strong> lower sensitivity in this simplified model<\/li>\n        <li><strong>Sunscreen:<\/strong> increases estimated safe exposure time<\/li>\n      <\/ul>\n    <\/div>\n  <\/details>\n<\/div>\n\n<style>\n.eco-tool{border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:16px;}\n.eco-tool__header{margin-bottom:12px;}\n.eco-tool__title{margin:0 0 8px;}\n.eco-tool__lead{margin:0;opacity:.9;}\n.eco-tool__form{margin-top:12px;}\n.eco-tool__grid3{display:grid;grid-template-columns:1fr;gap:16px;}\n@media (min-width:860px){.eco-tool__grid3{grid-template-columns:1fr 1fr 1fr;}}\n.eco-tool__field{display:flex;flex-direction:column;gap:6px;}\n.eco-tool__label{font-weight:600;}\n.eco-tool__input{width:100%;height:44px;padding:0 12px;border:1px solid rgba(0,0,0,.20);border-radius:10px;background:#fff;box-sizing:border-box;font:inherit;}\n.eco-tool select.eco-tool__input{\n  appearance:none;-webkit-appearance:none;line-height:44px;padding-right:40px;\n  background-image:\n    linear-gradient(45deg, transparent 50%, rgba(0,0,0,.60) 50%),\n    linear-gradient(135deg, rgba(0,0,0,.60) 50%, transparent 50%);\n  background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50%;\n  background-size:6px 6px;background-repeat:no-repeat;\n}\n.eco-tool__hint{font-size:.92em;opacity:.78;min-height:38px;}\n.eco-tool__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px;}\n.eco-tool__btn{padding:10px 22px;}\n.eco-tool__btn--ghost{background:transparent !important;border:1px solid rgba(0,0,0,.20) !important;}\n.eco-tool__btn--ghost:hover,.eco-tool__btn--ghost:focus{background:rgba(0,0,0,.06) !important;border-color:rgba(0,0,0,.35) !important;}\n.eco-tool__error{min-height:1.2em;font-weight:600;flex:1 1 240px;}\n.eco-tool__result{margin-top:16px;}\n.eco-tool__subtitle{margin:0 0 10px;}\n.eco-tool__cards{display:grid;gap:10px;grid-template-columns:1fr;}\n@media (min-width:860px){.eco-tool__cards{grid-template-columns:1fr 1fr;}}\n.eco-tool__card{border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:12px;}\n.eco-tool__metric-label{opacity:.85;font-weight:600;}\n.eco-tool__metric-value{font-size:1.6em;font-weight:800;margin-top:6px;line-height:1.1;}\n.eco-tool__metric-sub{opacity:.85;margin-top:6px;}\n.eco-tool__note{margin:10px 0 0;opacity:.9;}\n.eco-tool__details{margin-top:14px;}\n.eco-tool__summary{cursor:pointer;font-weight:700;}\n.eco-tool__details-body{margin-top:10px;}\n.eco-tool__text{margin:0 0 10px;}\n.eco-tool__list{margin:0;padding-left:18px;}\n<\/style>\n\n<script>\n(function(){\n  const S = \"p93z4\";\n  const el = (id) => document.getElementById(id + \"-\" + S);\n\n  const uvEl = el(\"uvindex\");\n  const skinEl = el(\"skintype\");\n  const sunscreenEl = el(\"sunscreen\");\n\n  const calcBtn = el(\"calc\");\n  const resetBtn = el(\"reset\");\n  const errorEl = el(\"error\");\n  const resultEl = el(\"result\");\n\n  const timeEl = el(\"time\");\n  const levelEl = el(\"level\");\n  const tipEl = el(\"tip\");\n\n  const BASE_MINUTES = {\n    1: 20,\n    2: 30,\n    3: 45,\n    4: 60,\n    5: 90,\n    6: 120\n  };\n\n  function setError(msg){ errorEl.textContent = msg || \"\"; }\n\n  function calculate(){\n    setError(\"\");\n\n    const uv = Number(uvEl.value);\n    const skin = Number(skinEl.value);\n    const sunscreen = Number(sunscreenEl.value);\n\n    if (!Number.isFinite(uv) || uv < 0){\n      setError(\"Please enter a valid UV index.\");\n      resultEl.hidden = true;\n      return;\n    }\n\n    const base = BASE_MINUTES[skin] || 45;\n    const adjusted = uv === 0 ? 999 : (base \/ Math.max(1, uv \/ 3)) * sunscreen;\n\n    let level = \"\";\n    let tip = \"\";\n\n    if (adjusted > 90){\n      level = \"Lower short-term risk\";\n      tip = \"Sun exposure still adds up. Shade and protective clothing are still a good idea.\";\n    } else if (adjusted > 45){\n      level = \"Moderate caution\";\n      tip = \"Limit long exposure, especially around midday.\";\n    } else if (adjusted > 20){\n      level = \"High caution\";\n      tip = \"Try to seek shade and avoid extended direct sun.\";\n    } else {\n      level = \"Very high caution\";\n      tip = \"Direct sun may become risky quickly. Reduce exposure and use strong protection.\";\n    }\n\n    timeEl.textContent = adjusted >= 999 ? \"Very low UV today\" : `${Math.round(adjusted)} minutes`;\n    levelEl.textContent = level;\n    tipEl.textContent = tip;\n    resultEl.hidden = false;\n  }\n\n  function reset(){\n    setError(\"\");\n    uvEl.value = \"7\";\n    skinEl.value = \"3\";\n    sunscreenEl.value = \"1.5\";\n    resultEl.hidden = true;\n  }\n\n  calcBtn.addEventListener(\"click\", calculate);\n  resetBtn.addEventListener(\"click\", reset);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>UV Exposure Time Calculator Estimate how quickly sun exposure risk can increase based on UV index, skin type, and sunscreen use. UV index Use your local UV forecast if available.&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2824,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"_links":{"self":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2884"}],"collection":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bio-me.bio\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2884"}],"version-history":[{"count":1,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2884\/revisions"}],"predecessor-version":[{"id":2885,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2884\/revisions\/2885"}],"up":[{"embeddable":true,"href":"https:\/\/bio-me.bio\/index.php?rest_route=\/wp\/v2\/pages\/2824"}],"wp:attachment":[{"href":"https:\/\/bio-me.bio\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}