{"id":2490,"date":"2025-11-13T15:47:47","date_gmt":"2025-11-13T13:47:47","guid":{"rendered":"https:\/\/html-online.com\/articles\/?p=2490"},"modified":"2026-01-08T14:50:17","modified_gmt":"2026-01-08T12:50:17","slug":"timezone-map","status":"publish","type":"post","link":"https:\/\/html-online.com\/articles\/timezone-map\/","title":{"rendered":"Time Zone Map Widget With HTML CSS and JavaScript"},"content":{"rendered":"<p><strong>We&#8217;ve been recently tasked with building an <a href=\"https:\/\/date.tools\/timezone-converter\" target=\"_blank\">interactive time zone picker for Date.Tools<\/a>, and surprisingly, there was no solid ready-made solution available online. So we created our own. We started with a public SVG world map from <a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:World_Time_Zones_Map.svg\" target=\"_blank\">Wikimedia Commons<\/a>, stripped out unnecessary layers, and made it fully interactive using <a href=\"\/articles\/category\/jquery\/\">jQuery<\/a>. In this article, I&#8217;ll explain how we built it, with a live <a href=\"#demo\">demo<\/a> included.<\/strong><\/p>\n<p class=\"aligncenter\"><a href=\"#demo\"><img decoding=\"async\" src=\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg\" alt=\"time zone map script website widget plugin\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<h2>What are Time&nbsp;Zones?<\/h2>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Time_zone\">Time&nbsp;zones<\/a> are regions that observe the same standard time, defined as an offset from Coordinated Universal Time (UTC). Offsets can include minutes (e.g., UTC&minus;03:30, UTC+09:30) and may change seasonally where daylight saving time is&nbsp;used.<\/p>\n<h3>Interesting Time Zone&nbsp;Facts<\/h3>\n<ul>\n<li>\n<strong>China<\/strong>\u26e9\ufe0f uses one time zone, even though it spans five natural&nbsp;ones.\n<\/li>\n<li>\nNepal&#8217;s \ud83c\udfd4\ufe0f time zone&nbsp;is <strong>UTC+5:45<\/strong>, a rare 45-minute&nbsp;offset.\n<\/li>\n<li>\nKiribati \ud83c\udfdd\ufe0f adopted the world&#8217;s&nbsp;first <strong>UTC+14<\/strong> time zone in&nbsp;1995.\n<\/li>\n<li>\nSamoa&nbsp;\ud83e\udd65 skipped December 30, 2011 by moving across the Date&nbsp;Line.\n<\/li>\n<li>\nSpain&nbsp;\ud83d\udc83\ud83c\udffd still uses CET, causing unusually late&nbsp;sunsets.\n<\/li>\n<\/ul>\n<h2 id=\"demo\">Demo<\/h2>\n<p>See the picker in action in <a href=\"https:\/\/htmliframe.com\/\" target=\"_blank\" rel=\"nofollow\">the iframe<\/a> below or visit <a href=\"https:\/\/date.tools\/timezone-converter\" target=\"_blank\"><em>date.tools<\/em><\/a> for integrations with even more features and converters. Open the demo in a <a href=\"\/demo\/timezone-map\" target=\"_blank\">new browser tab&nbsp;here&nbsp;&raquo;<\/a>.<\/p>\n<p class=\"aligncenter\"><iframe loading=\"lazy\" width=\"600\" height=\"450\" style=\"width: 100%; border: none;overflow:hidden\" src=\"https:\/\/html-online.com\/demo\/timezone-map\/\" frameborder=\"0\" name=\"HTMLiframe\"><\/iframe><\/p>\n<h2>How this Timezone Map&nbsp;Works<\/h2>\n<p>This interactive timezone map is using a single inline SVG layered over a static background png image. which you can adjust to match your own site design or even display countries. Each region is a clickable SVG <code>&lt;path&gt;<\/code> with a specific class name that encodes its UTC offset. Lightweight <a href=\"articles\/category\/javascript\/\">JavaScript<\/a> reads the offset from the class, formats it, and shows it in the info panel below on hover or click. Everything runs client\u2011side: no frameworks or databases, just plain <a href=\"https:\/\/html-css-js.com\/\">HTML,CSS and JS<\/a>.<\/p>\n<h3>1) Main Features<\/h3>\n<ul>\n<li><strong>Responsive Container<\/strong>: <code>#wrapTimeZoneMap<\/code> sets aspect ratio and the background image and scales naturally on smaller screens.<\/li>\n<li><strong>Inline SVG<\/strong>: Contains a lot of <code>&lt;path&gt;<\/code> elements.<\/li>\n<li><strong>Hit regions<\/strong>: Paths with class <code>.www<\/code> represent interactive (hover and click) timezone shapes.<\/li>\n<li><strong>Offset encoding<\/strong>: The class <code>wXXXX<\/code> encodes the UTC offset. Examples:\n<ul>\n<li><code>w-330<\/code> &rarr; UTC&minus;03:30<\/li>\n<li><code>w930<\/code> &rarr; UTC+09:30<\/li>\n<li><code>w1245<\/code> &rarr; UTC+12:45<\/li>\n<\/ul>\n<\/li>\n<li><strong>Optional boundaries<\/strong>: Lines with classes like <code>.z<\/code> and <code>.bndry<\/code> render borders; <code>.bndry<\/code> is hidden by default but you can show them by deleting this line from the CSS: <br \/><em>path.bndry { display: none; }<\/em><\/li>\n<li><strong>Info panel<\/strong>: <code>#timezonMapInfo<\/code> shows the formatted UTC label on hover. This is great for debugging.<\/li>\n<li><strong>jQuery<\/strong>: Used for simple event binding.<\/li>\n<li><strong>Touch<\/strong>: Hover behavior falls back to tap\/click to reveal the info panel.<\/li>\n<li><strong>Internationalization<\/strong>: Output is a simple UTC string; localize the prefix or format it if you wish.<\/li>\n<\/ul>\n<h3>2) CSS: Visuals and Hit&nbsp;Layer<\/h3>\n<p>The&nbsp;hit layer&nbsp;(<code>path.www<\/code>) is styled to be barely transparent at rest and emphasized on hover. It uses a thin stroke to show borders.<code><\/code><\/p>\n<pre><code class=\"hcj\"><span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.www<\/span>{<span class=\"hcj-attribute\">opacity<\/span>:<span class=\"hcj-number\">0.2<\/span>;<span class=\"hcj-attribute\">z-index<\/span>:<span class=\"hcj-number\">9<\/span>}\n<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.www<\/span><span class=\"hcj-selector-pseudo\">:hover<\/span>,<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.hovered<\/span>{<span class=\"hcj-attribute\">opacity<\/span>:<span class=\"hcj-number\">0.5<\/span>;<span class=\"hcj-attribute\">fill<\/span>:<span class=\"hcj-number\">#000<\/span>}\n<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.www<\/span><span class=\"hcj-selector-pseudo\">:hover<\/span> <span class=\"hcj-selector-tag\">path<\/span>{<span class=\"hcj-attribute\">opacity<\/span>:<span class=\"hcj-number\">0.5<\/span>;<span class=\"hcj-attribute\">fill<\/span>:<span class=\"hcj-number\">#000<\/span>}\n<span class=\"hcj-comment\">\/* Add borders to time zone shapes *\/<\/span>\n<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.www<\/span>{<span class=\"hcj-attribute\">stroke<\/span>:<span class=\"hcj-number\">#525289<\/span>;<span class=\"hcj-attribute\">stroke-width<\/span>:<span class=\"hcj-number\">0.8<\/span>;<span class=\"hcj-attribute\">stroke-linejoin<\/span>:round;<span class=\"hcj-attribute\">stroke-linecap<\/span>:round;<span class=\"hcj-attribute\">vector-effect<\/span>:non-scaling-stroke}\n<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.www<\/span><span class=\"hcj-selector-pseudo\">:hover<\/span>,<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.hovered<\/span>{<span class=\"hcj-attribute\">stroke<\/span>:<span class=\"hcj-number\">#000<\/span>;<span class=\"hcj-attribute\">stroke-width<\/span>:<span class=\"hcj-number\">1<\/span>}\n<span class=\"hcj-selector-tag\">path<\/span>{<span class=\"hcj-attribute\">position<\/span>:relative;<span class=\"hcj-attribute\">z-index<\/span>:<span class=\"hcj-number\">8<\/span>}\n<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.bndry<\/span>{<span class=\"hcj-attribute\">display<\/span>:none}\n<span class=\"hcj-selector-tag\">path<\/span><span class=\"hcj-selector-class\">.www<\/span><span class=\"hcj-selector-class\">.w5-w4<\/span>{<span class=\"hcj-attribute\">display<\/span>:block}<\/code><\/pre>\n<p>Color fills for each zone are defined via classes like <strong>.w-3, .w7<\/strong>, etc. Pattern fills are declared in the SVG <strong>&lt;defs&gt;<\/strong>.<\/p>\n<h3>3) JavaScript To Extract, Format &amp; Display<\/h3>\n<p>On hover, we parse the offset from the path class, turn it into a human\u2011readable labels, add a temporary <code>.hovered<\/code> class to all shapes with the same offset, and render the UTC string&nbsp;in <code>#timezonMapInfo<\/code>.<\/p>\n<pre><code class=\"hcj language-javascript\"><span class=\"hcj-comment\">\/\/ Extract the numeric offset from classes like \"www w-330\" or \"www w1030\"<\/span>\n<span class=\"hcj-keyword\">function<\/span> <span class=\"hcj-title function_\">extractNumberZone<\/span>(<span class=\"hcj-params\">className<\/span>) {\n  <span class=\"hcj-keyword\">let<\/span> match = className.<span class=\"hcj-title function_\">match<\/span>(<span class=\"hcj-regexp\">\/\\bw(-?\\d+)\\b\/<\/span>);\n  <span class=\"hcj-keyword\">return<\/span> match ? <span class=\"hcj-built_in\">parseInt<\/span>(match[<span class=\"hcj-number\">1<\/span>], <span class=\"hcj-number\">10<\/span>) : <span class=\"hcj-literal\">null<\/span>;\n}\n\n<span class=\"hcj-comment\">\/\/ Convert \"1030\" &amp;rarr; \"10:30\", \"45\" &amp;rarr; \"45:00\", \"-330\" is handled as a whole number<\/span>\n<span class=\"hcj-keyword\">function<\/span> <span class=\"hcj-title function_\">formatTimeZone<\/span>(<span class=\"hcj-params\">input<\/span>) {\n  <span class=\"hcj-keyword\">let<\/span> str = input.<span class=\"hcj-title function_\">toString<\/span>();\n  <span class=\"hcj-keyword\">if<\/span> (str.<span class=\"hcj-property\">length<\/span>&amp;nbsp;&amp;lt; <span class=\"hcj-number\">3<\/span>) <span class=\"hcj-keyword\">return<\/span> str + <span class=\"hcj-string\">\":00\"<\/span>;\n  <span class=\"hcj-keyword\">return<\/span> str.<span class=\"hcj-title function_\">slice<\/span>(<span class=\"hcj-number\">0<\/span>, -<span class=\"hcj-number\">2<\/span>) + <span class=\"hcj-string\">\":\"<\/span> + str.<span class=\"hcj-title function_\">slice<\/span>(-<span class=\"hcj-number\">2<\/span>);\n}\n\n<span class=\"hcj-comment\">\/\/ Prepend +\/&amp;minus; and a space for display consistency<\/span>\n<span class=\"hcj-keyword\">function<\/span> <span class=\"hcj-title function_\">relativeToUtc<\/span>(<span class=\"hcj-params\">input<\/span>) {\n  <span class=\"hcj-keyword\">return<\/span> input.<span class=\"hcj-title function_\">startsWith<\/span>(<span class=\"hcj-string\">\"-\"<\/span>) ? <span class=\"hcj-string\">\"- \"<\/span> + input.<span class=\"hcj-title function_\">slice<\/span>(<span class=\"hcj-number\">1<\/span>) : <span class=\"hcj-string\">\"+ \"<\/span> + input;\n}\n\n<span class=\"hcj-comment\">\/\/ Hover\/click behavior<\/span>\n<span class=\"hcj-keyword\">var<\/span> seg = <span class=\"hcj-string\">\"yo\"<\/span>;\n$(<span class=\"hcj-variable language_\">document<\/span>).<span class=\"hcj-title function_\">ready<\/span>(<span class=\"hcj-keyword\">function<\/span>(<span class=\"hcj-params\"><\/span>) {\n  $(<span class=\"hcj-string\">\".www\"<\/span>).<span class=\"hcj-title function_\">mouseover<\/span>(<span class=\"hcj-keyword\">function<\/span>(<span class=\"hcj-params\"><\/span>) {\n    seg = <span class=\"hcj-title class_\">Number<\/span>(<span class=\"hcj-title function_\">extractNumberZone<\/span>($(<span class=\"hcj-variable language_\">this<\/span>).<span class=\"hcj-title function_\">attr<\/span>(<span class=\"hcj-string\">\"class\"<\/span>)));\n    $(<span class=\"hcj-string\">\".www.w\"<\/span> + seg).<span class=\"hcj-title function_\">addClass<\/span>(<span class=\"hcj-string\">\"hovered\"<\/span>);\n    $(<span class=\"hcj-string\">\"#timezonMapInfo\"<\/span>).<span class=\"hcj-title function_\">html<\/span>(<span class=\"hcj-string\">\"UTC \"<\/span> + <span class=\"hcj-title function_\">relativeToUtc<\/span>(<span class=\"hcj-title function_\">formatTimeZone<\/span>(seg)));\n  });\n  $(<span class=\"hcj-string\">\".www\"<\/span>).<span class=\"hcj-title function_\">mouseout<\/span>(<span class=\"hcj-keyword\">function<\/span>(<span class=\"hcj-params\"><\/span>) {\n    $(<span class=\"hcj-string\">\"#timezonMapInfo\"<\/span>).<span class=\"hcj-title function_\">html<\/span>(<span class=\"hcj-string\">\"\"<\/span>);\n    $(<span class=\"hcj-string\">\".www\"<\/span>).<span class=\"hcj-title function_\">removeClass<\/span>(<span class=\"hcj-string\">\"hovered\"<\/span>);\n  });\n  $(<span class=\"hcj-string\">\".www\"<\/span>).<span class=\"hcj-title function_\">click<\/span>(<span class=\"hcj-keyword\">function<\/span>(<span class=\"hcj-params\"><\/span>) {\n    <span class=\"hcj-variable language_\">console<\/span>.<span class=\"hcj-title function_\">log<\/span>(<span class=\"hcj-string\">\"UTC \"<\/span> + <span class=\"hcj-title function_\">relativeToUtc<\/span>(<span class=\"hcj-title function_\">formatTimeZone<\/span>(seg)));\n  });\n});<\/code><\/pre>\n<h3>4) Customization Tips<\/h3>\n<p>This is a very basic setup that you can extend further to match your website and custom<\/p>\n<ul>\n<li><strong>Change borders<\/strong>: Tweak <code>stroke<\/code> and <code>stroke-width<\/code> on <code>path.www<\/code>.<\/li>\n<li><strong>Enable boundary lines<\/strong>: Unhide <code>path.bndry<\/code> in CSS to show underlying boundaries.<\/li>\n<li><strong>Highlight strategy<\/strong>: Use the shared <code>.wXXXX<\/code> class to highlight all fragments of a split timezone.<\/li>\n<li><strong>Keyboard support<\/strong>: Add <code>tabindex=\"0\"<\/code> and key handlers if you need full keyboard navigation.<\/li>\n<li><strong>Selection state<\/strong>: Persist the chosen offset in localStorage or bind to a hidden input for forms.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;ve been recently tasked with building an interactive time zone picker for Date.Tools, and surprisingly, there was no solid ready-made solution available online. So we created our own. We started with a public SVG world map from Wikimedia Commons, stripped out unnecessary layers, and made it fully interactive using jQuery. In this article, I&#8217;ll explain &hellip; <a href=\"https:\/\/html-online.com\/articles\/timezone-map\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Time Zone Map Widget With HTML CSS and JavaScript&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,2,4],"tags":[],"class_list":["post-2490","post","type-post","status-publish","format-standard","hentry","category-articles","category-css","category-html"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Time Zone Map Widget With HTML CSS and JavaScript<\/title>\n<meta name=\"description\" content=\"building an interactive time zone picker\u00a0for date.tools, and surprisingly, there was no solid ready-made solution available online.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/html-online.com\/articles\/timezone-map\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Time Zone Map Widget With HTML CSS and JavaScript\" \/>\n<meta property=\"og:description\" content=\"building an interactive time zone picker\u00a0for date.tools, and surprisingly, there was no solid ready-made solution available online.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/html-online.com\/articles\/timezone-map\/\" \/>\n<meta property=\"og:site_name\" content=\"HTML Online\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/htmlcoding\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-13T13:47:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-08T12:50:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg\" \/>\n<meta name=\"author\" content=\"HTML Editor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"HTML Editor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/\"},\"author\":{\"name\":\"HTML Editor\",\"@id\":\"https:\/\/html-online.com\/articles\/#\/schema\/person\/019f9afa07f209153df0fecfc90b8c1d\"},\"headline\":\"Time Zone Map Widget With HTML CSS and JavaScript\",\"datePublished\":\"2025-11-13T13:47:47+00:00\",\"dateModified\":\"2026-01-08T12:50:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/\"},\"wordCount\":608,\"publisher\":{\"@id\":\"https:\/\/html-online.com\/articles\/#organization\"},\"image\":{\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg\",\"articleSection\":[\"Articles\",\"CSS\",\"HTML\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/\",\"url\":\"https:\/\/html-online.com\/articles\/timezone-map\/\",\"name\":\"Time Zone Map Widget With HTML CSS and JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/html-online.com\/articles\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg\",\"datePublished\":\"2025-11-13T13:47:47+00:00\",\"dateModified\":\"2026-01-08T12:50:17+00:00\",\"description\":\"building an interactive time zone picker\u00a0for date.tools, and surprisingly, there was no solid ready-made solution available online.\",\"breadcrumb\":{\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/html-online.com\/articles\/timezone-map\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage\",\"url\":\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg\",\"contentUrl\":\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/html-online.com\/articles\/timezone-map\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/html-online.com\/articles\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Time Zone Map Widget With HTML CSS and JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/html-online.com\/articles\/#website\",\"url\":\"https:\/\/html-online.com\/articles\/\",\"name\":\"HTML Online Articles\",\"description\":\"Tips, tricks, tutorials\u2026\",\"publisher\":{\"@id\":\"https:\/\/html-online.com\/articles\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/html-online.com\/articles\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/html-online.com\/articles\/#organization\",\"name\":\"HTML Online\",\"url\":\"https:\/\/html-online.com\/articles\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/html-online.com\/articles\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2022\/06\/logo.jpg\",\"contentUrl\":\"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2022\/06\/logo.jpg\",\"width\":350,\"height\":350,\"caption\":\"HTML Online\"},\"image\":{\"@id\":\"https:\/\/html-online.com\/articles\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/htmlcoding\/\",\"https:\/\/www.linkedin.com\/in\/ferencdenes\/\",\"https:\/\/www.youtube.com\/channel\/UCn38Jw1sJzbjVHO95Zp0Sww\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/html-online.com\/articles\/#\/schema\/person\/019f9afa07f209153df0fecfc90b8c1d\",\"name\":\"HTML Editor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/html-online.com\/articles\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7c1d8f5e7f1dc3e261766a96ac50c6a907fa5c236e87ab73379c57c9114e92cd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7c1d8f5e7f1dc3e261766a96ac50c6a907fa5c236e87ab73379c57c9114e92cd?s=96&d=mm&r=g\",\"caption\":\"HTML Editor\"},\"description\":\"In 2013, while wrestling with a mountain of client articles and an uncooperative CMS, I decided enough was enough. So, I created an online HTML editor purely out of necessity (and mild frustration). What began as a tool for my own sanity quickly evolved into a gift for the world\u2014or at least for anyone trying to avoid breaking their website's code. Since then, I've shared my tech notes on my blog, which serves as both a handy reference and a digital diary of the adventures and misadventures of a coder.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/ferencdenes\/\",\"https:\/\/www.youtube.com\/@htmlg\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Time Zone Map Widget With HTML CSS and JavaScript","description":"building an interactive time zone picker\u00a0for date.tools, and surprisingly, there was no solid ready-made solution available online.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/html-online.com\/articles\/timezone-map\/","og_locale":"en_GB","og_type":"article","og_title":"Time Zone Map Widget With HTML CSS and JavaScript","og_description":"building an interactive time zone picker\u00a0for date.tools, and surprisingly, there was no solid ready-made solution available online.","og_url":"https:\/\/html-online.com\/articles\/timezone-map\/","og_site_name":"HTML Online","article_publisher":"https:\/\/www.facebook.com\/htmlcoding\/","article_published_time":"2025-11-13T13:47:47+00:00","article_modified_time":"2026-01-08T12:50:17+00:00","og_image":[{"url":"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg","type":"","width":"","height":""}],"author":"HTML Editor","twitter_card":"summary_large_image","twitter_misc":{"Written by":"HTML Editor","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/html-online.com\/articles\/timezone-map\/#article","isPartOf":{"@id":"https:\/\/html-online.com\/articles\/timezone-map\/"},"author":{"name":"HTML Editor","@id":"https:\/\/html-online.com\/articles\/#\/schema\/person\/019f9afa07f209153df0fecfc90b8c1d"},"headline":"Time Zone Map Widget With HTML CSS and JavaScript","datePublished":"2025-11-13T13:47:47+00:00","dateModified":"2026-01-08T12:50:17+00:00","mainEntityOfPage":{"@id":"https:\/\/html-online.com\/articles\/timezone-map\/"},"wordCount":608,"publisher":{"@id":"https:\/\/html-online.com\/articles\/#organization"},"image":{"@id":"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage"},"thumbnailUrl":"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg","articleSection":["Articles","CSS","HTML"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/html-online.com\/articles\/timezone-map\/","url":"https:\/\/html-online.com\/articles\/timezone-map\/","name":"Time Zone Map Widget With HTML CSS and JavaScript","isPartOf":{"@id":"https:\/\/html-online.com\/articles\/#website"},"primaryImageOfPage":{"@id":"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage"},"image":{"@id":"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage"},"thumbnailUrl":"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg","datePublished":"2025-11-13T13:47:47+00:00","dateModified":"2026-01-08T12:50:17+00:00","description":"building an interactive time zone picker\u00a0for date.tools, and surprisingly, there was no solid ready-made solution available online.","breadcrumb":{"@id":"https:\/\/html-online.com\/articles\/timezone-map\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/html-online.com\/articles\/timezone-map\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/html-online.com\/articles\/timezone-map\/#primaryimage","url":"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg","contentUrl":"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2025\/11\/time-zone-map-script.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/html-online.com\/articles\/timezone-map\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/html-online.com\/articles\/"},{"@type":"ListItem","position":2,"name":"Time Zone Map Widget With HTML CSS and JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/html-online.com\/articles\/#website","url":"https:\/\/html-online.com\/articles\/","name":"HTML Online Articles","description":"Tips, tricks, tutorials\u2026","publisher":{"@id":"https:\/\/html-online.com\/articles\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/html-online.com\/articles\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/html-online.com\/articles\/#organization","name":"HTML Online","url":"https:\/\/html-online.com\/articles\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/html-online.com\/articles\/#\/schema\/logo\/image\/","url":"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2022\/06\/logo.jpg","contentUrl":"https:\/\/html-online.com\/articles\/wp-content\/uploads\/2022\/06\/logo.jpg","width":350,"height":350,"caption":"HTML Online"},"image":{"@id":"https:\/\/html-online.com\/articles\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/htmlcoding\/","https:\/\/www.linkedin.com\/in\/ferencdenes\/","https:\/\/www.youtube.com\/channel\/UCn38Jw1sJzbjVHO95Zp0Sww"]},{"@type":"Person","@id":"https:\/\/html-online.com\/articles\/#\/schema\/person\/019f9afa07f209153df0fecfc90b8c1d","name":"HTML Editor","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/html-online.com\/articles\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7c1d8f5e7f1dc3e261766a96ac50c6a907fa5c236e87ab73379c57c9114e92cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7c1d8f5e7f1dc3e261766a96ac50c6a907fa5c236e87ab73379c57c9114e92cd?s=96&d=mm&r=g","caption":"HTML Editor"},"description":"In 2013, while wrestling with a mountain of client articles and an uncooperative CMS, I decided enough was enough. So, I created an online HTML editor purely out of necessity (and mild frustration). What began as a tool for my own sanity quickly evolved into a gift for the world\u2014or at least for anyone trying to avoid breaking their website's code. Since then, I've shared my tech notes on my blog, which serves as both a handy reference and a digital diary of the adventures and misadventures of a coder.","sameAs":["https:\/\/www.linkedin.com\/in\/ferencdenes\/","https:\/\/www.youtube.com\/@htmlg"]}]}},"_links":{"self":[{"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/posts\/2490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/comments?post=2490"}],"version-history":[{"count":3,"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/posts\/2490\/revisions"}],"predecessor-version":[{"id":2526,"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/posts\/2490\/revisions\/2526"}],"wp:attachment":[{"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/media?parent=2490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/categories?post=2490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/html-online.com\/articles\/wp-json\/wp\/v2\/tags?post=2490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}