{"id":102425,"date":"2025-10-03T07:46:34","date_gmt":"2025-10-03T07:46:34","guid":{"rendered":"https:\/\/hdwrglobal.com\/convertidor-de-medidas\/"},"modified":"2026-03-03T20:58:52","modified_gmt":"2026-03-03T20:58:52","slug":"convertidor-de-medidas","status":"publish","type":"page","link":"https:\/\/hdwrglobal.com\/es\/convertidor-de-medidas\/","title":{"rendered":"Conversor de unidades"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"102425\" class=\"elementor elementor-102425 elementor-102375\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54b1eb78 e-flex e-con-boxed e-con e-parent\" data-id=\"54b1eb78\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c176c59 elementor-widget elementor-widget-woocommerce-breadcrumb\" data-id=\"c176c59\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"woocommerce-breadcrumb.default\">\n\t\t\t\t\t<nav class=\"woocommerce-breadcrumb\" aria-label=\"Breadcrumb\">Inicio<\/nav>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-857b802 e-con-full e-flex e-con e-child\" data-id=\"857b802\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97b08cf elementor-widget elementor-widget-heading\" data-id=\"97b08cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Conversor de unidades<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac5bec9 elementor-widget elementor-widget-text-editor\" data-id=\"ac5bec9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"converter-lead\"><strong>El conversor de unidades<\/strong> es una herramienta r\u00e1pida y pr\u00e1ctica que te permite convertir longitud, peso, temperatura, volumen y mucho m\u00e1s. Tanto si cocinas como si estudias o trabajas, encontrar\u00e1s todo lo que necesitas para realizar conversiones precisas. <\/p>\n\n<div class=\"measurement-converter\">\n<div class=\"converter\">\n\n\n<div class=\"sidebar\">\n<h2 class=\"collapsible-header\">Convertidores unitarios<\/h2>\n<ul class=\"units\">\n \t<li data-type=\"length\">Longitud<\/li>\n \t<li data-type=\"time\">Tiempo<\/li>\n \t<li data-type=\"weight\">Peso<\/li>\n \t<li data-type=\"volume\">Volumen<\/li>\n \t<li data-type=\"pressure\">Presi\u00f3n<\/li>\n \t<li data-type=\"speed\">Velocidad<\/li>\n \t<li data-type=\"temperature\">Temperatura<\/li>\n \t<li data-type=\"area\">Zona<\/li>\n \t<li data-type=\"memory\">Memoria<\/li>\n \t<li data-type=\"energy\">Energ\u00eda<\/li>\n<\/ul>\n<h2 class=\"collapsible-header\">Otras herramientas<\/h2>\n<ul class=\"tools\">\n \t<li data-type=\"dates\">Diferencia de fecha<\/li>\n \t<li data-type=\"arithmetic\">Media aritm\u00e9tica<\/li>\n \t<li data-type=\"weighted\">Media ponderada<\/li>\n \t<li data-type=\"numbers\">Conversor de base num\u00e9rica<\/li>\n<\/ul>\n<\/div>\n\n<div class=\"main-content\">\n<div class=\"multiConverter\"><\/div>\n<\/div>\n\n<div id=\"converter-i18n\" style=\"display:none\" aria-hidden=\"true\"><span data-key=\"area.are\">son<\/span><span data-key=\"area.hectare\">hect\u00e1rea<\/span><span data-key=\"area.square centimeters\">cent\u00edmetros cuadrados<\/span><span data-key=\"area.square feet\">pies cuadrados<\/span><span data-key=\"area.square inches\">pulgadas cuadradas<\/span><span data-key=\"area.square kilometers\">kil\u00f3metros cuadrados<\/span><span data-key=\"area.square meters\">metros cuadrados<\/span><span data-key=\"area.square miles\">millas cuadradas<\/span><span data-key=\"area.square yards\">yardas cuadradas<\/span><span data-key=\"energy.BTU\">BTU<\/span><span data-key=\"energy.calorie (cal)\">calor\u00eda (cal)<\/span><span data-key=\"energy.joule (J)\">julio (J)<\/span><span data-key=\"energy.kilocalorie (kcal)\">kilocalor\u00eda (kcal)<\/span><span data-key=\"energy.kilojoule (kJ)\">kilojulio (kJ)<\/span><span data-key=\"energy.kilowatt-hour (kWh)\">kilovatio-hora (kWh)<\/span><span data-key=\"energy.watt-hour (Wh)\">vatio-hora (Wh)<\/span><span data-key=\"length.centimeters\">cent\u00edmetros<\/span><span data-key=\"length.feet\">pies<\/span><span data-key=\"length.inches\">pulgadas<\/span><span data-key=\"length.kilometers\">kil\u00f3metros<\/span><span data-key=\"length.meters\">metros<\/span><span data-key=\"length.miles\">millas<\/span><span data-key=\"length.millimeters\">mil\u00edmetros<\/span><span data-key=\"length.yards\">yardas<\/span><span data-key=\"memory.bytes\">bytes<\/span><span data-key=\"memory.gigabytes\">gigabytes<\/span><span data-key=\"memory.kilobytes\">kilobytes<\/span><span data-key=\"memory.megabytes\">megabytes<\/span><span data-key=\"memory.terabytes\">terabytes<\/span><span data-key=\"pressure.bar\">bar<\/span><span data-key=\"pressure.kilopascal (kPa)\">kilopascales (kPa)<\/span><span data-key=\"pressure.pascal (Pa)\">pascales (Pa)<\/span><span data-key=\"pressure.psi\">psi<\/span><span data-key=\"speed.ft\/s\">pies\/s<\/span><span data-key=\"speed.km\/h\">km\/h<\/span><span data-key=\"speed.m\/s\">m\/s<\/span><span data-key=\"speed.mph\">mph<\/span><span data-key=\"time.days\">d\u00edas<\/span><span data-key=\"time.hours\">horas<\/span><span data-key=\"time.microseconds\">microsegundos<\/span><span data-key=\"time.milliseconds\">milisegundos<\/span><span data-key=\"time.minutes\">minutos<\/span><span data-key=\"time.months (avg)\">meses (media)<\/span><span data-key=\"time.nanoseconds\">nanosegundos<\/span><span data-key=\"time.seconds\">segundos<\/span><span data-key=\"time.weeks\">semanas<\/span><span data-key=\"time.years (avg)\">a\u00f1os (media)<\/span><span data-key=\"ui.add_row\">A\u00f1adir fila<\/span><span data-key=\"ui.add_value\">A\u00f1adir valor<\/span><span data-key=\"ui.arithmetic_mean\">Media aritm\u00e9tica:  <\/span><span data-key=\"ui.base36\">Base36 (36)<\/span><span data-key=\"ui.binary2\">Binario (2)<\/span><span data-key=\"ui.both_required\">Por favor, introduzca ambas fechas.<\/span><span data-key=\"ui.calc\">Calcular la diferencia<\/span><span data-key=\"ui.days\">d\u00edas<\/span><span data-key=\"ui.decimal10\">Decimal (10)<\/span><span data-key=\"ui.diff_prefix\">Diferencia:  <\/span><span data-key=\"ui.duodecimal12\">Duodecimal (12)<\/span><span data-key=\"ui.end\">Fecha de finalizaci\u00f3n:<\/span><span data-key=\"ui.hexadecimal16\">Hexadecimal (16)<\/span><span data-key=\"ui.hours\">horas<\/span><span data-key=\"ui.minutes\">minutos<\/span><span data-key=\"ui.octal8\">Octal (8)<\/span><span data-key=\"ui.order_error\">La fecha de inicio debe ser anterior a la fecha de finalizaci\u00f3n.<\/span><span data-key=\"ui.quaternary4\">Cuaternario (4)<\/span><span data-key=\"ui.remove\">Eliminar<\/span><span data-key=\"ui.seconds\">segundos<\/span><span data-key=\"ui.start\">Fecha de inicio:<\/span><span data-key=\"ui.trinary3\">Trinario (3)<\/span><span data-key=\"ui.value\">Valor<\/span><span data-key=\"ui.weight\">Peso<\/span><span data-key=\"ui.weighted_mean\">Media ponderada:  <\/span><span data-key=\"volume.cubic meters\">metros c\u00fabicos<\/span><span data-key=\"volume.gallons (UK)\">galones (Reino Unido)<\/span><span data-key=\"volume.gallons (US)\">galones (US)<\/span><span data-key=\"volume.liters\">litros<\/span><span data-key=\"volume.milliliters\">mililitros<\/span><span data-key=\"weight.decagrams\">decagramas<\/span><span data-key=\"weight.grams\">gramos<\/span><span data-key=\"weight.kilograms\">kilogramos<\/span><span data-key=\"weight.milligrams\">miligramos<\/span><span data-key=\"weight.ounces\">onzas<\/span><span data-key=\"weight.pounds\">libras<\/span><span data-key=\"weight.quintal\">quintal<\/span><span data-key=\"weight.stone\">piedra<\/span><\/div>\n<\/div>\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d723ef elementor-widget elementor-widget-html\" data-id=\"8d723ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\/* Converter styles *\/\n\n\/* Uk\u0142ad kolumn konwertera *\/\n.measurement-converter .converter{\n  display: flex !important;\n  gap: 20px !important;\n  align-items: flex-start !important;\n}\n\n\/* Szeroko\u015b\u0107\/lekkie \u201ckafelkowanie\u201d panelu z lewej *\/\n.measurement-converter .sidebar{\n  flex: 0 0 320px !important;\n  max-width: 320px !important;\n  padding: 20px !important;\n  border: 1px solid rgba(204,210,222,.6) !important;\n  border-radius: 20px !important;\n  background: #f9f9f9 !important;\n}\n\n\/* Prawa kolumna wype\u0142nia reszt\u0119 *\/\n.measurement-converter .main-content{\n  flex: 1 1 auto !important;\n}\n\n\/* Delikatne UX dla listy w panelu *\/\n.measurement-converter .sidebar ul{ list-style:none; margin:0 0 12px 0; padding:0; }\n.measurement-converter .sidebar li{\n  padding:10px 14px; font-size:14px; border-radius:10px; cursor:pointer;\n}\n.measurement-converter .sidebar li:hover,\n.measurement-converter .sidebar li.active{ background:#ececec; }\n\n\/* Mobile \u2013 pod sob\u0105 *\/\n@media (max-width: 768px){\n  .measurement-converter .converter{ flex-direction: column !important; }\n  .measurement-converter .sidebar{ max-width: 100% !important; }\n}\n\/* H1 i lead *\/\n.converter-page-title{\n  font-size:40px;\n  font-weight:400;     \/* nie bold *\/\n  line-height:1.25;\n  margin:0 0 10px;\n}\n.converter-lead{ margin:0 0 18px; }\n\n\/* Uk\u0142ad *\/\n.measurement-converter .converter{\n  display:flex;\n  gap:28px;\n  align-items:flex-start;\n}\n.measurement-converter .sidebar{\n  flex:0 0 300px;\n  max-width:300px;\n  padding:18px;\n  border:1px solid rgba(204,210,222,.6);\n  border-radius:18px;\n  background:#f7f7f7;\n}\n.measurement-converter .main-content{ flex:1 1 auto; }\n\n\/* Sidebar *\/\n.measurement-converter .sidebar h2{\n  margin:0 0 10px;\n  font-size:16px;\n  font-weight:600;\n}\n.measurement-converter .sidebar ul{\n  list-style:none;\n  margin:0 0 14px;\n  padding:0;\n}\n.measurement-converter .sidebar li{\n  padding:10px 14px;\n  font-size:14px;\n  border-radius:10px;\n  cursor:pointer;\n}\n.measurement-converter .sidebar li:hover,\n.measurement-converter .sidebar li.active{\n  background:#ececec;\n}\n\n\/* Pola w prawej kolumnie *\/\n.measurement-converter .input-group{ margin-bottom:12px; }\n.measurement-converter .input-group label{\n  display:block;\n  font-size:12px;\n  font-weight:500;\n  margin-bottom:6px;\n}\n.measurement-converter input[type=\"text\"],\n.measurement-converter input[type=\"number\"],\n.measurement-converter input[type=\"datetime-local\"],\n.measurement-converter select,\n.measurement-converter textarea{\n  width:100%;\n  max-width:100%;               \/* nadpisuje ewentualne ograniczenia motywu *\/\n  box-sizing:border-box;\n  padding:10px 14px;\n  border:1px solid rgba(204,210,222,.8);\n  border-radius:10px;\n  background:#fff;\n  font-size:14px;\n}\n.measurement-converter button{\n  border:0;\n  border-radius:14px;\n  padding:10px 24px;\n  background:#000;\n  color:#fff;\n  cursor:pointer;\n}\n\n\/* Mobile *\/\n@media (max-width: 991px){\n  .measurement-converter .converter{ flex-direction:column; }\n  .measurement-converter .sidebar{ max-width:100%; }\n}\n\/* Szerzej: 1280px + wy\u015brodkowanie dla H1, leada i panelu *\/\n:root .converter-page-title,\n:root .converter-lead{\n  max-width: 1280px !important;\n  padding-left: 28px !important;\n  padding-right: 28px !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n\n:root .measurement-converter .converter{\n  max-width: 1280px !important;\n  padding-left: 8px !important;\n  padding-right: 28px !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n\n\/* H1: 30px, p\u00f3\u0142gruby, wi\u0119kszy odst\u0119p pod spodem *\/\n.converter-page-title{\n  font-size: 43px;\n  font-weight: 600 !important;\n  line-height: 1.25;\n  margin: 22px 0 20px !important; \/* wi\u0119ksza przerwa nad leadem *\/\n}\n.converter-lead{ margin: 0 0 22px !important; }\n\/* Wiersz warto\u015bci\/wa g \u2013 troch\u0119 cia\u015bniej *\/\n.measurement-converter .dynamic-row{\n  display:flex;\n  flex-wrap:wrap;\n  gap:8px;              \/* mniejszy odst\u0119p wewn\u0119trzny *\/\n  margin-bottom:4px;    \/* po\u0142owa poprzedniego *\/\n}\n\n\/* Przycisk \"Remove\" pod polami \u2013 bez wci\u0119cia, lekki odst\u0119p w pionie *\/\n.measurement-converter .dynamic-row button{\n  margin-left:0;        \/* wyr\u00f3wnanie do lewej kraw\u0119dzi *\/\n  margin-top:6px;       \/* mniejszy odst\u0119p od input\u00f3w *\/\n}\n\n\/* Przycisk \"Add row\" \u2013 r\u00f3wnie\u017c cia\u015bniej *\/\n.measurement-converter .multiConverter > button{\n  margin-top:6px;       \/* po\u0142owa poprzedniego odst\u0119pu *\/\n}\n\/* --- MOBILE FIX jak na Shoperze (sidebar jako karta, chipsy, kolumny pod sob\u0105) --- *\/\n@media (max-width: 991.98px){\n  html body .measurement-converter .converter{\n    display:flex !important;\n    flex-direction:column-reverse !important;\n    gap:16px !important;\n    padding:0 14px !important;\n    max-width:1160px !important;\n    margin:0 auto !important;\n  }\n\n  html body .measurement-converter .main-content{\n    width:100% !important;\n  }\n\n  html body .measurement-converter .sidebar{\n    width:100% !important;\n    padding:16px !important;\n    border:1px solid rgba(204,210,222,.6) !important;\n    border-radius:16px !important;\n    background:#f9f9f9 !important;\n  }\n\n  html body .measurement-converter .sidebar ul{\n    display:flex !important;\n    flex-wrap:wrap !important;\n    gap:6px !important;\n    list-style:none !important;\n    margin:0 0 10px 0 !important;\n    padding:0 !important;\n  }\n\n  html body .measurement-converter .sidebar li{\n    padding:10px 14px !important;\n    font-size:14px !important;\n    border-radius:10px !important;\n    cursor:pointer !important;\n    background:transparent !important;\n  }\n  html body .measurement-converter .sidebar li:hover,\n  html body .measurement-converter .sidebar li.active{\n    background:#ececec !important;\n  }\n\n  \/* pola i rytm odst\u0119p\u00f3w *\/\n  html body .measurement-converter .input-group{ margin-bottom:10px !important; }\n  html body .measurement-converter label{ font-size:12px !important; margin-bottom:4px !important; }\n  html body .measurement-converter input{\n    height:42px !important;      \/* 16px font \u2192 brak zoomu iOS *\/\n    font-size:16px !important;\n  }\n\n  \/* przyciski (daty \/ \u015brednie) *\/\n  html body .measurement-converter button{\n    padding:12px 24px !important;\n    border-radius:12px !important;\n    margin:4px 0 !important;\n  }\n  html body .measurement-converter .dynamic-row{ margin:6px 0 !important; }\n  html body .measurement-converter .dynamic-row input{ margin-bottom:6px !important; }\n}\n\n\/* Nag\u0142\u00f3wek i lead (wymuszenie nadpisania motywu) *\/\nhtml body .converter-page-title{\n  font-size:28px !important;\n  font-weight:600 !important;\n  line-height:1.25 !important;\n  margin:0 0 10px !important;\n}\nhtml body .converter-lead{\n  margin:0 0 16px !important;\n}\n\n\/* Szeroko\u015b\u0107 kontenera te\u017c na desktopie (\u017ceby nie \u201eci\u0105gn\u0119\u0142o\u201d na pe\u0142n\u0105) *\/\nhtml body .measurement-converter .converter{\n  max-width:1160px !important;\n  margin:0 auto !important;\n}\n\/* === Measurement converter \u2013 mobile gutters === *\/\n@media (max-width: 768px){\n  \/* ten sam margines wewn\u0119trzny z lewej i prawej *\/\n  .converter-page-title,\n  .converter-lead,\n  .measurement-converter{\n    box-sizing: border-box;\n    padding-left: 18px;\n    padding-right: 18px;\n  }\n\n  \/* nic si\u0119 nie dociska do kraw\u0119dzi *\/\n  .measurement-converter .converter{ margin: 0; }\n  .measurement-converter .sidebar{ padding: 16px; }\n}\n\n\/* dla iPhone\u2019\u00f3w z notchem \u2013 zachowaj safe-area i r\u00f3wne odst\u0119py *\/\n@supports (padding: max(0px)) {\n  @media (max-width: 768px){\n    .converter-page-title,\n    .converter-lead,\n    .measurement-converter{\n      padding-left: max(18px, env(safe-area-inset-left));\n      padding-right: max(18px, env(safe-area-inset-right));\n    }\n  }\n}\n\/* MOBILE-ONLY: zmniejsz odst\u0119p mi\u0119dzy ostatnim polem a panelem kategorii *\/\n@media (max-width: 768px){\n  \/* cia\u015bniejszy odst\u0119p mi\u0119dzy kolumnami (lista p\u00f3l \u2194 panel) *\/\n  .measurement-converter .converter{\n    gap: 4px !important;\n  }\n\n  \/* ostatnie pole (np. \"yards\") \u2013 minimalny margines na dole *\/\n  .measurement-converter .main-content .input-group:last-child{\n    margin-bottom: 0px !important;\n  }\n\n  \/* panel \"Measurement converters \/ Other tools\" bli\u017cej listy p\u00f3l *\/\n  .measurement-converter .sidebar{\n    margin-top: 0px !important;\n  }\n}\n\/* H1 tylko na desktopie (>=1024px) *\/\n@media (min-width: 1024px) {\n  body h1.converter-page-title.converter-page-title {\n    font-size: 35px !important;\n    line-height: 1.25;   \/* opcjonalnie *\/\n    margin-bottom: 24px; \/* je\u015bli chcesz troch\u0119 wi\u0119kszy odst\u0119p pod tytu\u0142em *\/\n  }\n}\n\n\/* (opcjonalnie) przypnij mobile na 30px, je\u015bli co\u015b wcze\u015bniej to psuje *\/\n@media (max-width: 1023.98px) {\n  body h1.converter-page-title.converter-page-title {\n    font-size: 30px !important;\n  }\n}\n\/* Gwarantowany odst\u0119p pod H1 \u2013 dzia\u0142a nawet przy margin collapsing *\/\nh1.converter-page-title{\n  margin: 0 !important;            \/* zerujemy, \u017ceby nic si\u0119 nie zla\u0142o *\/\n}\nh1.converter-page-title::after{\n  content: \"\";\n  display: block;\n  height: 10px;                    \/* \n}\n\n\n<\/style>\n<script>\n(function () {\n  function runWithSmallRetries() {\n    requestAnimationFrame(() => {\n      initMeasurementConverter();\n      setTimeout(initMeasurementConverter, 50);\n      setTimeout(initMeasurementConverter, 200);\n    });\n  }\n\n  function initMeasurementConverter() {\n    const root = document.querySelector('.measurement-converter');\n    if (!root || root.dataset.inited === '1') return;\n\n    \/\/ Load translations from DOM\n    const i18n = {};\n    document.querySelectorAll('#converter-i18n [data-key]').forEach(el => {\n      const key = el.dataset.key;\n      const dot = key.indexOf('.');\n      if (dot === -1) return;\n      const type = key.substring(0, dot);\n      const slug = key.substring(dot + 1);\n      if (!i18n[type]) i18n[type] = {};\n      i18n[type][slug] = el.textContent;\n    });\n\n    const LBL = (type, slug) =>\n      (i18n[type] && i18n[type][slug]) || slug;\n\n    const units = {\n      length: {\n        'millimeters': 1000, 'centimeters': 100, 'meters': 1, 'kilometers': 0.001,\n        'miles': 0.000621371, 'feet': 3.28084, 'inches': 39.3701, 'yards': 1.09361\n      },\n      weight: {\n        'milligrams': 1000000, 'decagrams': 100, 'grams': 1000, 'kilograms': 1,\n        'pounds': 2.20462, 'ounces': 35.274, 'stone': 0.157473, 'quintal': 0.01\n      },\n      volume: {\n        'milliliters': 1000, 'liters': 1, 'cubic meters': 0.001,\n        'gallons (US)': 0.264172, 'gallons (UK)': 0.219969\n      },\n      pressure: {\n        'pascal (Pa)': 1, 'kilopascal (kPa)': 0.001, 'psi': 0.000145, 'bar': 1e-5\n      },\n      speed: { 'm\/s': 1, 'km\/h': 3.6, 'mph': 2.23694, 'ft\/s': 3.28084 },\n      time: {\n        'nanoseconds': 1e9, 'microseconds': 1e6, 'milliseconds': 1000, 'seconds': 1,\n        'minutes': 1\/60, 'hours': 1\/3600, 'days': 1\/86400, 'weeks': 1\/604800,\n        'months (avg)': 1\/2629746, 'years (avg)': 1\/31557600\n      },\n      area: {\n        'square centimeters': 10000, 'square meters': 1, 'are': 0.01, 'hectare': 0.0001,\n        'square kilometers': 1e-6, 'square feet': 10.7639, 'square yards': 1.19599,\n        'square inches': 1550.0031, 'square miles': 3.86102e-7\n      },\n      memory: {\n        'bytes': 1, 'kilobytes': 1\/1024, 'megabytes': 1\/(1024*1024),\n        'gigabytes': 1\/(1024*1024*1024), 'terabytes': 1\/(1024*1024*1024*1024)\n      },\n      energy: {\n        'joule (J)': 1, 'kilojoule (kJ)': 0.001, 'calorie (cal)': 0.2390, 'kilocalorie (kcal)': 0.0002390,\n        'BTU': 0.0009478, 'watt-hour (Wh)': 0.0002778, 'kilowatt-hour (kWh)': 2.78e-7\n      }\n    };\n\n    const temperatureUnits = {\n      'Celsius': { toBase: t => t, fromBase: t => t },\n      'Fahrenheit': { toBase: t => (t - 32) * 5\/9, fromBase: t => (t * 9\/5) + 32 },\n      'Kelvin': { toBase: t => t - 273.15, fromBase: t => t + 273.15 },\n      'Rankine': { toBase: t => (t * 5\/9) - 273.15, fromBase: t => (t + 273.15) * 9\/5 }\n    };\n\n    let currentType = 'length';\n    const multiConverterDiv = root.getElementsByClassName('multiConverter')[0];\n    const sidebarItems = root.querySelectorAll('.sidebar li');\n    const collapsibleHeaders = root.querySelectorAll('.sidebar .collapsible-header');\n\n    if (!multiConverterDiv || sidebarItems.length === 0) return;\n\n    collapsibleHeaders.forEach(header => {\n      header.addEventListener('click', function () {\n        const ul = this.nextElementSibling;\n        if (ul && ul.tagName === 'UL') {\n          ul.classList.toggle('collapsed');\n          this.classList.toggle('collapsed');\n        }\n      });\n    });\n\n    sidebarItems.forEach(li => {\n      li.addEventListener('click', () => {\n        sidebarItems.forEach(i => i.classList.remove('active'));\n        li.classList.add('active');\n        currentType = li.getAttribute('data-type');\n        render();\n      });\n    });\n\n    const toNumber = (raw) => {\n      if (typeof raw !== 'string') return Number(raw);\n      const s = raw.trim().replace(',', '.');\n      const v = parseFloat(s);\n      return Number.isFinite(v) ? v : NaN;\n    };\n\n    function render() {\n      if (!multiConverterDiv) return;\n      if (currentType === 'dates') return renderDates();\n      if (currentType === 'arithmetic') return renderArithmetic();\n      if (currentType === 'weighted') return renderWeighted();\n      if (currentType === 'numbers') return renderNumbers();\n\n      multiConverterDiv.innerHTML = '';\n      const dict = (currentType === 'temperature') ? temperatureUnits : units[currentType];\n      if (!dict) return;\n\n      Object.keys(dict).forEach(slug => {\n        const wrap = document.createElement('div');\n        wrap.className = 'input-group';\n\n        const lab = document.createElement('label');\n        lab.htmlFor = 'uc_' + slug;\n        const labelTxt = LBL(currentType, slug);\n        lab.textContent = labelTxt;\n\n        const inp = document.createElement('input');\n        if (currentType === 'temperature') {\n          inp.type = 'text'; inp.setAttribute('inputmode', 'decimal');\n        } else {\n          inp.type = 'number'; inp.step = 'any';\n        }\n        inp.id = 'uc_' + slug;\n        inp.placeholder = labelTxt;\n\n        inp.addEventListener('input', () => {\n          const t = inp.value.trim();\n          if (t === '' || t === '-' || t === '-.') { clearFields(dict); return; }\n          const val = toNumber(inp.value);\n          if (isNaN(val)) return;\n          update(dict, slug, val);\n        });\n\n        wrap.appendChild(lab);\n        wrap.appendChild(inp);\n        multiConverterDiv.appendChild(wrap);\n      });\n    }\n\n    function clearFields(dict) {\n      Object.keys(dict).forEach(slug => {\n        const f = document.getElementById('uc_' + slug);\n        if (f) f.value = '';\n      });\n    }\n\n    function update(dict, changed, value) {\n      if (dict === temperatureUnits) {\n        const base = temperatureUnits[changed].toBase(value);\n        Object.keys(temperatureUnits).forEach(slug => {\n          if (slug === changed) return;\n          const f = document.getElementById('uc_' + slug);\n          if (!f) return;\n          const out = temperatureUnits[slug].fromBase(base);\n          f.value = Number.isFinite(out) ? out.toFixed(2) : '';\n        });\n      } else {\n        const base = value \/ dict[changed];\n        Object.keys(dict).forEach(slug => {\n          if (slug === changed) return;\n          const f = document.getElementById('uc_' + slug);\n          if (!f) return;\n          const out = base * dict[slug];\n          f.value = Number.isFinite(out) ? out.toFixed(4) : '';\n        });\n      }\n    }\n\n    function U(slug) { return LBL('ui', slug); }\n\n    function renderDates() {\n      multiConverterDiv.innerHTML = '';\n      const g1 = document.createElement('div'); g1.className = 'input-group';\n      g1.innerHTML = '<label for=\"uc_start\">' + U('start') + '<\/label><input type=\"datetime-local\" id=\"uc_start\">';\n      const g2 = document.createElement('div'); g2.className = 'input-group';\n      g2.innerHTML = '<label for=\"uc_end\">' + U('end') + '<\/label><input type=\"datetime-local\" id=\"uc_end\">';\n      const btn = document.createElement('button'); btn.textContent = U('calc');\n      const res = document.createElement('div'); res.className = 'date-result'; res.id = 'uc_date_res';\n      btn.addEventListener('click', () => {\n        const s = document.getElementById('uc_start').value;\n        const e = document.getElementById('uc_end').value;\n        if (!s || !e) { res.textContent = U('both_required'); return; }\n        const diff = new Date(e) - new Date(s);\n        if (diff < 0) { res.textContent = U('order_error'); return; }\n        const sec = Math.floor(diff \/ 1000);\n        const d = Math.floor(sec \/ 86400);\n        const h = Math.floor((sec % 86400) \/ 3600);\n        const m = Math.floor((sec % 3600) \/ 60);\n        const s2 = sec % 60;\n        res.textContent = U('diff_prefix') + d + ' ' + U('days') + ', ' + h + ' ' + U('hours') + ', ' + m + ' ' + U('minutes') + (s2 ? ', ' + s2 + ' ' + U('seconds') : '');\n      });\n      multiConverterDiv.append(g1, g2, btn, res);\n    }\n\n    function renderArithmetic() {\n      multiConverterDiv.innerHTML = '';\n      const box = document.createElement('div');\n      const res = document.createElement('div'); res.className = 'date-result';\n      const add = document.createElement('button'); add.textContent = U('add_value');\n\n      function row() {\n        const r = document.createElement('div'); r.className = 'dynamic-row';\n        const i = document.createElement('input'); i.type = 'number'; i.step = 'any'; i.placeholder = U('value');\n        const rm = document.createElement('button'); rm.textContent = U('remove');\n        i.addEventListener('input', calc);\n        rm.addEventListener('click', () => { r.remove(); calc(); });\n        r.append(i, rm); return r;\n      }\n      function calc() {\n        const vals = Array.from(box.querySelectorAll('input'))\n          .map(x => parseFloat(x.value.replace(',', '.'))).filter(v => Number.isFinite(v));\n        res.textContent = vals.length ? U('arithmetic_mean') + (vals.reduce((a, b) => a + b, 0) \/ vals.length).toFixed(2) : '';\n      }\n      box.appendChild(row());\n      add.addEventListener('click', () => { box.appendChild(row()); calc(); });\n      multiConverterDiv.append(box, add, res);\n    }\n\n    function renderWeighted() {\n      multiConverterDiv.innerHTML = '';\n      const box = document.createElement('div');\n      const res = document.createElement('div'); res.className = 'date-result';\n      const add = document.createElement('button'); add.textContent = U('add_row');\n\n      function row() {\n        const r = document.createElement('div'); r.className = 'dynamic-row';\n        const v = document.createElement('input'); v.type = 'number'; v.step = 'any'; v.placeholder = U('value');\n        const w = document.createElement('input'); w.type = 'number'; w.step = 'any'; w.placeholder = U('weight');\n        const rm = document.createElement('button'); rm.textContent = U('remove');\n        v.addEventListener('input', calc); w.addEventListener('input', calc);\n        rm.addEventListener('click', () => { r.remove(); calc(); });\n        r.append(v, w, rm); return r;\n      }\n      function calc() {\n        let sum = 0, tw = 0;\n        Array.from(box.querySelectorAll('.dynamic-row')).forEach(r => {\n          const [v, w] = r.querySelectorAll('input');\n          const nv = parseFloat((v.value || '').replace(',', '.'));\n          const nw = parseFloat((w.value || '').replace(',', '.'));\n          if (Number.isFinite(nv) && Number.isFinite(nw)) { sum += nv * nw; tw += nw; }\n        });\n        res.textContent = tw ? U('weighted_mean') + (sum \/ tw).toFixed(2) : '';\n      }\n      box.appendChild(row());\n      add.addEventListener('click', () => { box.appendChild(row()); calc(); });\n      multiConverterDiv.append(box, add, res);\n    }\n\n    function renderNumbers() {\n      multiConverterDiv.innerHTML = '';\n      const sys = [\n        { id: 'bin', base: 2, label: U('binary2') },\n        { id: 'tri', base: 3, label: U('trinary3') },\n        { id: 'qua', base: 4, label: U('quaternary4') },\n        { id: 'oct', base: 8, label: U('octal8') },\n        { id: 'dec', base: 10, label: U('decimal10') },\n        { id: 'duo', base: 12, label: U('duodecimal12') },\n        { id: 'hex', base: 16, label: U('hexadecimal16') },\n        { id: 'b36', base: 36, label: U('base36') }\n      ];\n      const inputs = {};\n      sys.forEach(s => {\n        const g = document.createElement('div'); g.className = 'input-group';\n        g.innerHTML = '<label for=\"' + s.id + 'Input\">' + s.label + '<\/label><input type=\"text\" id=\"' + s.id + 'Input\" placeholder=\"' + s.label + '\">';\n        const inp = g.querySelector('input');\n        inputs[s.id] = inp;\n        inp.addEventListener('input', () => {\n          const val = inp.value.trim();\n          if (val === '') { sys.forEach(x => { if (x.id !== s.id) inputs[x.id].value = ''; }); return; }\n          const num = parseInt(val, s.base);\n          if (isNaN(num)) return;\n          sys.forEach(x => {\n            if (x.id === s.id) return;\n            let out = num.toString(x.base);\n            if (x.base === 16 || x.base === 36) out = out.toUpperCase();\n            inputs[x.id].value = out;\n          });\n        });\n        multiConverterDiv.appendChild(g);\n      });\n    }\n\n    root.dataset.inited = '1';\n    const first = root.querySelector('.sidebar li');\n    if (first) { first.classList.add('active'); }\n    render();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', runWithSmallRetries);\n  } else {\n    runWithSmallRetries();\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2ddd7db e-con-full e-flex e-con e-child\" data-id=\"2ddd7db\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c82c988 elementor-widget elementor-widget-heading\" data-id=\"c82c988\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfQu\u00e9 unidades se pueden convertir?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9cfd0ba elementor-widget elementor-widget-text-editor\" data-id=\"9cfd0ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Nuestro conversor gratuito admite una amplia gama de categor\u00edas de medici\u00f3n, incluyendo <strong>longitud<\/strong> (metros, pies, pulgadas, millas), <strong>peso<\/strong> (kilogramos, libras, onzas), <strong>temperatura<\/strong> (Celsius, Fahrenheit, Kelvin), <strong>volumen<\/strong> (litros, galones, tazas), <strong>\u00e1rea<\/strong> (metros cuadrados, acres, hect\u00e1reas), <strong>velocidad<\/strong>, <strong>tiempo<\/strong> y <strong>almacenamiento de datos<\/strong>. Todas las conversiones se calculan al instante con alta precisi\u00f3n.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1723ea6 elementor-widget elementor-widget-heading\" data-id=\"1723ea6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfC\u00f3mo usar el conversor de unidades?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27fbce2 elementor-widget elementor-widget-text-editor\" data-id=\"27fbce2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Simplemente seleccione la categor\u00eda de medici\u00f3n, elija las unidades de origen y destino, ingrese un valor y vea el resultado al instante. La tabla interactiva muestra todas las conversiones disponibles a la vez. No se requiere registro ni instalaci\u00f3n \u2014 funciona directamente en su navegador.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afaea54 elementor-widget elementor-widget-heading\" data-id=\"afaea54\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfCu\u00e1ndo se necesita un conversor de unidades?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ba6504 elementor-widget elementor-widget-text-editor\" data-id=\"7ba6504\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Los conversores de unidades son esenciales en la vida cotidiana y el trabajo profesional. La <strong>cocina<\/strong> requiere a menudo convertir entre tazas, cucharadas y mililitros. El <strong>env\u00edo internacional<\/strong> necesita conversiones entre kilogramos y libras, cent\u00edmetros y pulgadas. La <strong>ingenier\u00eda y la ciencia<\/strong> trabajan con diversas unidades m\u00e9tricas e imperiales. Los <strong>viajes<\/strong> implican conversiones de temperatura, distancia y unidades.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Conversor de unidades El conversor de unidades es una herramienta r\u00e1pida y pr\u00e1ctica que te permite convertir longitud, peso, temperatura, volumen y mucho m\u00e1s. Tanto si cocinas como si estudias o trabajas, encontrar\u00e1s todo lo que necesitas para realizar conversiones precisas. Convertidores unitarios Longitud Tiempo Peso Volumen Presi\u00f3n Velocidad Temperatura Zona Memoria Energ\u00eda Otras herramientas [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-102425","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hdwrglobal.com\/es\/wp-json\/wp\/v2\/pages\/102425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hdwrglobal.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hdwrglobal.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hdwrglobal.com\/es\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/hdwrglobal.com\/es\/wp-json\/wp\/v2\/comments?post=102425"}],"version-history":[{"count":0,"href":"https:\/\/hdwrglobal.com\/es\/wp-json\/wp\/v2\/pages\/102425\/revisions"}],"wp:attachment":[{"href":"https:\/\/hdwrglobal.com\/es\/wp-json\/wp\/v2\/media?parent=102425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}