| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html lang="en" class="no-js"> | 
					
						
							|  |  |  |   <head> | 
					
						
							|  |  |  |     <meta charset="UTF-8" /> | 
					
						
							|  |  |  |     <meta name="viewport" content="width=device-width" /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <title>Convert TimeZones in Your Browser</title> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <link rel="canonical" href="https://therootcompany.github.io/tz.js/" /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <meta name="theme-color" content="#FF00FF" /> | 
					
						
							|  |  |  |     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/spcss@0.7.0" /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <style> | 
					
						
							|  |  |  |       input { | 
					
						
							|  |  |  |         width: 24em; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     </style> | 
					
						
							|  |  |  |   </head> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <body> | 
					
						
							|  |  |  |     <!-- Content --> | 
					
						
							|  |  |  |     <h1> | 
					
						
							|  |  |  |       <a href="https://github.com/therootcompany/tz.js" target="_blank" | 
					
						
							|  |  |  |         >XTZ.js</a | 
					
						
							|  |  |  |       > | 
					
						
							|  |  |  |     </h1> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <h3> | 
					
						
							| 
									
										
										
										
											2021-05-28 02:16:33 -06:00
										 |  |  |       Current Time: | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <span class="js-my-dt">YYYY-MM-DDThh:mm:ss.mmm+0000</span> | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |     </h3> | 
					
						
							| 
									
										
										
										
											2021-07-22 19:03:59 -06:00
										 |  |  |     <pre><code>new Intl.DateTimeFormat().resolvedOptions().timeZone;</code></pre> | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |     Current Time Zone: <span class="js-my-tz">America/XXXX</span> | 
					
						
							|  |  |  |     <br /> | 
					
						
							| 
									
										
										
										
											2021-07-22 19:03:59 -06:00
										 |  |  |     <pre><code>String(((new Date()).getTimezoneOffset() / 60)).padStart(2, '0') + | 
					
						
							|  |  |  | String(((new Date()).getTimezoneOffset() % 60)).padStart(2, '0')</code></pre> | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |     Current Time Offset: <span class="js-my-offset">-0000</span> | 
					
						
							|  |  |  |     <hr /> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |     <form class="js-tz2tz"> | 
					
						
							|  |  |  |       <h3>Convert Between Time Zones:</h3> | 
					
						
							|  |  |  |       <label> | 
					
						
							|  |  |  |         Time: | 
					
						
							|  |  |  |         <input | 
					
						
							|  |  |  |           class="js-dt-xtz" | 
					
						
							|  |  |  |           type="text" | 
					
						
							|  |  |  |           placeholder="ex: 2021-03-14 03:15:69.000" | 
					
						
							|  |  |  |           required | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <label> | 
					
						
							|  |  |  |         Input Zone: | 
					
						
							|  |  |  |         <input | 
					
						
							|  |  |  |           class="js-tz1-xtz" | 
					
						
							|  |  |  |           type="text" | 
					
						
							|  |  |  |           placeholder="ex: UTC or America/New_York" | 
					
						
							|  |  |  |           required | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <label> | 
					
						
							|  |  |  |         Output Zone: | 
					
						
							|  |  |  |         <input | 
					
						
							|  |  |  |           class="js-tz2-xtz" | 
					
						
							|  |  |  |           type="text" | 
					
						
							|  |  |  |           placeholder="ex: America/Los_Angeles or UTC" | 
					
						
							|  |  |  |           required | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <label> | 
					
						
							|  |  |  |         ISO: | 
					
						
							|  |  |  |         <input class="js-my-dt-xtz" type="text" disabled /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <button type="submit">Convert between Zones!</button> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |     </form> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <hr /> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-09 23:29:07 -07:00
										 |  |  |     <form class="js-local"> | 
					
						
							|  |  |  |       <h3>Local ISO+Offset String:</h3> | 
					
						
							|  |  |  |       <pre><code>XTZ.toLocalISOString(new Date())</code></pre> | 
					
						
							|  |  |  |       <label> | 
					
						
							|  |  |  |         ISO: | 
					
						
							|  |  |  |         <input class="js-my-dt-local" type="text" disabled /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |     </form> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <hr /> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |     <form class="js-tz2utc"> | 
					
						
							|  |  |  |       <h3>Relative TimeZone to Absolute UTC:</h3> | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |       <pre><code>XTZ.toUTC("<span class="js-dtx-tz">YYYY-03-14 03:15:69.000</span>", "<span class="js-tzx-tz">UTC</span>") | 
					
						
							|  |  |  |    .toISOString() | 
					
						
							|  |  |  | // <span class="js-myx-dt-tz"></span></code></pre> | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |       <label> | 
					
						
							|  |  |  |         Time: | 
					
						
							|  |  |  |         <input | 
					
						
							|  |  |  |           class="js-dt-tz" | 
					
						
							|  |  |  |           type="text" | 
					
						
							|  |  |  |           placeholder="ex: 2021-03-14 03:15:69.000" | 
					
						
							|  |  |  |           required | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <label> | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |         Input Zone: | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |         <input | 
					
						
							|  |  |  |           class="js-tz-tz" | 
					
						
							|  |  |  |           type="text" | 
					
						
							|  |  |  |           placeholder="ex: America/New_York" | 
					
						
							|  |  |  |           required | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <label> | 
					
						
							|  |  |  |         ISO: | 
					
						
							|  |  |  |         <input class="js-my-dt-tz" type="text" disabled /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <button type="submit">Convert to UTC!</button> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |     </form> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <hr /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <form class="js-utc2tz"> | 
					
						
							|  |  |  |       <h3>Absolute UTC to Relative TimeZone</h3> | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |       <pre><code>XTZ.toTimeZone("<span class="js-dtx-utc">YYYY-03-14 03:15:69.000</span>", "<span class="js-tzx-utc">UTC</span>") | 
					
						
							|  |  |  |    .toISOString() | 
					
						
							|  |  |  | // <span class="js-myx-dt-utc"></span></code></pre> | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |       <label> | 
					
						
							|  |  |  |         Time: | 
					
						
							|  |  |  |         <input | 
					
						
							|  |  |  |           class="js-dt-utc" | 
					
						
							|  |  |  |           type="text" | 
					
						
							|  |  |  |           placeholder="ex: 2021-03-14 03:15:69.000" | 
					
						
							|  |  |  |           required | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <label> | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |         Output Zone: | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |         <input | 
					
						
							|  |  |  |           class="js-tz-utc" | 
					
						
							|  |  |  |           type="text" | 
					
						
							|  |  |  |           placeholder="ex: America/New_York" | 
					
						
							|  |  |  |           required | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <label> | 
					
						
							|  |  |  |         ISO: | 
					
						
							|  |  |  |         <input class="js-my-dt-utc" type="text" disabled /> | 
					
						
							|  |  |  |       </label> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |       <button type="submit">Convert to TZ!</button> | 
					
						
							|  |  |  |       <br /> | 
					
						
							|  |  |  |     </form> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <hr /> | 
					
						
							|  |  |  |     <h3>Time Zones List</h3> | 
					
						
							|  |  |  |     See the | 
					
						
							|  |  |  |     <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" | 
					
						
							|  |  |  |       >Full List of Time Zones</a | 
					
						
							|  |  |  |     > | 
					
						
							|  |  |  |     on Wikipedia. | 
					
						
							|  |  |  |     <pre> | 
					
						
							|  |  |  | America/New_York    -0500 -0400             (Eastern Time) | 
					
						
							|  |  |  | America/Denver      -0700 -0600             (Mountain Time) | 
					
						
							|  |  |  | America/Phoenix     -0700 (No DST)          (Arizona Time) | 
					
						
							|  |  |  | America/Los_Angeles -0800 -0700             (Pacific Time) | 
					
						
							| 
									
										
										
										
											2021-05-28 09:04:56 -06:00
										 |  |  | UTC                 Z                       (UTC "Zulu" Time) | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  | Australia/Adelaide  +0930 +1030    (30-min) | 
					
						
							|  |  |  | Asia/Kathmandu      +0545 (No DST) (45-min) | 
					
						
							|  |  |  | Asia/Kolkata        +0530 (No DST) (30-min)</pre | 
					
						
							|  |  |  |     > | 
					
						
							|  |  |  |     <hr /> | 
					
						
							|  |  |  |     Code at | 
					
						
							|  |  |  |     <a href="https://github.com/therootcompany/tz.js" target="_blank" | 
					
						
							|  |  |  |       >github.com/therootcompany/tz.js</a | 
					
						
							|  |  |  |     > | 
					
						
							|  |  |  |     <script src="./xtz.js"></script> | 
					
						
							| 
									
										
										
										
											2022-03-09 23:29:07 -07:00
										 |  |  |     <script src="./tolocalisostring.js"></script> | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |     <script> | 
					
						
							|  |  |  |       function $(sel, el) { | 
					
						
							|  |  |  |         return (el || document.body).querySelector(sel); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |       function translate(dt, tz, tz2) { | 
					
						
							|  |  |  |         var utc = new Date(XTZ.toUTC(dt, tz).toISOString()); | 
					
						
							|  |  |  |         if (!tz2) { | 
					
						
							|  |  |  |           return utc; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return XTZ.toTimeZone(utc, tz2); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |       function toUTC() { | 
					
						
							|  |  |  |         var curDt = $(".js-dt-tz").value; | 
					
						
							|  |  |  |         var curTz = $(".js-tz-tz").value; | 
					
						
							| 
									
										
										
										
											2021-05-28 02:09:15 -06:00
										 |  |  |         $(".js-my-dt-tz").value = XTZ.toUTC(curDt, curTz).toISOString(); | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $(".js-dtx-tz").innerText = curDt; | 
					
						
							|  |  |  |         $(".js-tzx-tz").innerText = curTz; | 
					
						
							|  |  |  |         $(".js-myx-dt-tz").innerText = $(".js-my-dt-tz").value; | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       function toTZ() { | 
					
						
							|  |  |  |         var curDt = $(".js-dt-utc").value; | 
					
						
							|  |  |  |         var curTz = $(".js-tz-utc").value; | 
					
						
							| 
									
										
										
										
											2021-05-28 02:09:15 -06:00
										 |  |  |         $(".js-my-dt-utc").value = XTZ.toTimeZone(curDt, curTz).toISOString(); | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $(".js-dtx-utc").innerText = curDt; | 
					
						
							|  |  |  |         $(".js-tzx-utc").innerText = curTz; | 
					
						
							|  |  |  |         $(".js-myx-dt-utc").innerText = $(".js-my-dt-utc").value; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       function xTZ() { | 
					
						
							|  |  |  |         var curDt = $(".js-dt-xtz").value; | 
					
						
							|  |  |  |         var inTz = $(".js-tz1-xtz").value; | 
					
						
							|  |  |  |         var outTz = $(".js-tz2-xtz").value; | 
					
						
							|  |  |  |         $(".js-my-dt-xtz").value = translate(curDt, inTz, outTz).toISOString(); | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-09 23:29:07 -07:00
										 |  |  |       $(".js-my-dt-local").value = XTZ.toLocalISOString(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |       var myTz = new Intl.DateTimeFormat("default", {}).resolvedOptions() | 
					
						
							|  |  |  |         .timeZone; | 
					
						
							|  |  |  |       $(".js-my-tz").innerText = myTz; | 
					
						
							|  |  |  |       $(".js-tz-tz").value = myTz; | 
					
						
							|  |  |  |       $(".js-tz-utc").value = myTz; | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |       $(".js-tz1-xtz").value = myTz; | 
					
						
							|  |  |  |       $(".js-tz2-xtz").value = "Asia/Kathmandu"; | 
					
						
							|  |  |  |       var myOffset = -1 * new Date().getTimezoneOffset(); | 
					
						
							|  |  |  |       $(".js-my-offset").innerText = | 
					
						
							|  |  |  |         XTZ.formatOffset(myOffset) + " (" + myOffset + ")"; | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |       var myDate = new Date(); | 
					
						
							|  |  |  |       $(".js-my-dt").innerText = XTZ.toTimeZone(myDate, myTz).toISOString(); | 
					
						
							|  |  |  |       $(".js-dt-tz").value = XTZ.toTimeZone(myDate, myTz) | 
					
						
							|  |  |  |         .toISOString() | 
					
						
							|  |  |  |         .replace("T", " ") | 
					
						
							|  |  |  |         .replace(/(Z|(\+|-)\d+)$/, ""); | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |       $(".js-dt-xtz").value = $(".js-dt-tz").value; | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |       $(".js-dt-utc").value = myDate.toISOString(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       $("form.js-utc2tz").addEventListener("submit", function (ev) { | 
					
						
							|  |  |  |         ev.preventDefault(); | 
					
						
							|  |  |  |         ev.stopPropagation(); | 
					
						
							|  |  |  |         toTZ(); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |       $("form.js-tz2utc").addEventListener("submit", function (ev) { | 
					
						
							|  |  |  |         ev.preventDefault(); | 
					
						
							|  |  |  |         ev.stopPropagation(); | 
					
						
							|  |  |  |         toUTC(); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       toUTC(); | 
					
						
							|  |  |  |       toTZ(); | 
					
						
							| 
									
										
										
										
											2021-05-30 04:12:34 -06:00
										 |  |  |       xTZ(); | 
					
						
							| 
									
										
										
										
											2021-05-28 01:55:01 -06:00
										 |  |  |     </script> | 
					
						
							|  |  |  |   </body> | 
					
						
							|  |  |  | </html> |