mirror of
				https://github.com/therootcompany/tz.js.git
				synced 2024-11-16 17:29:01 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "6a095b0966704f61bb1a66e544320e5557d93318" and "7acf670aa62a72a3a1f5c67b4f2c8507cba3502e" have entirely different histories.
		
	
	
		
			6a095b0966
			...
			7acf670aa6
		
	
		
| @ -8,13 +8,6 @@ in ~100 LoC. For Node.js & Browsers. | ||||
| XTZ is a poor man's `Temporal` polyfill, but just for time zones. \ | ||||
| Demo: <https://therootcompany.github.io/tz.js/> | ||||
| 
 | ||||
| ```js | ||||
| // What's the current time, in ISO format? | ||||
| 
 | ||||
| TZ.toLocalISOString(new Date()); // "2021-11-07T03:15:59.000-0500" | ||||
| TZ.timeZone(); // "America/New_York" | ||||
| ``` | ||||
| 
 | ||||
| > What UTC time will it be when it's 3:15am in New York? | ||||
| 
 | ||||
| ```js | ||||
| @ -105,7 +98,6 @@ https://www.youtube.com/playlist?list=PLxki0D-ilnqa6horOJ2G18WMZlJeQFlAt | ||||
| 
 | ||||
| # API | ||||
| 
 | ||||
| - `toLocalISOString(dateOrNull)` | ||||
| - `toTimeZone(utcDate, timeZone)` | ||||
| - `toTimeZoneISOString(isoString, timeZone)` | ||||
| - `toUTC(dtString, timeZone)` | ||||
|  | ||||
							
								
								
									
										15
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								index.html
									
									
									
									
									
								
							| @ -86,18 +86,6 @@ String(((new Date()).getTimezoneOffset() % 60)).padStart(2, '0')</code></pre> | ||||
| 
 | ||||
|     <hr /> | ||||
| 
 | ||||
|     <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 /> | ||||
| 
 | ||||
|     <form class="js-tz2utc"> | ||||
|       <h3>Relative TimeZone to Absolute UTC:</h3> | ||||
|       <pre><code>XTZ.toUTC("<span class="js-dtx-tz">YYYY-03-14 03:15:69.000</span>", "<span class="js-tzx-tz">UTC</span>") | ||||
| @ -194,7 +182,6 @@ Asia/Kolkata        +0530 (No DST) (30-min)</pre | ||||
|       >github.com/therootcompany/tz.js</a | ||||
|     > | ||||
|     <script src="./xtz.js"></script> | ||||
|     <script src="./tolocalisostring.js"></script> | ||||
|     <script> | ||||
|       function $(sel, el) { | ||||
|         return (el || document.body).querySelector(sel); | ||||
| @ -235,8 +222,6 @@ Asia/Kolkata        +0530 (No DST) (30-min)</pre | ||||
|         $(".js-my-dt-xtz").value = translate(curDt, inTz, outTz).toISOString(); | ||||
|       } | ||||
| 
 | ||||
|       $(".js-my-dt-local").value = XTZ.toLocalISOString(); | ||||
| 
 | ||||
|       var myTz = new Intl.DateTimeFormat("default", {}).resolvedOptions() | ||||
|         .timeZone; | ||||
|       $(".js-my-tz").innerText = myTz; | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "xtz", | ||||
|   "version": "1.1.1", | ||||
|   "version": "1.0.2", | ||||
|   "description": "A fast, lightweight, zero-dependency library to translate between Time Zones and UTC with native Intl.DateTimeFormat in ~100 LoC. For Node.js & Browsers.", | ||||
|   "main": "xtz.js", | ||||
|   "scripts": { | ||||
|  | ||||
| @ -1,50 +0,0 @@ | ||||
| (function (exports) { | ||||
|   "use strict"; | ||||
| 
 | ||||
|   // See <https://github.com/coolaj86/AJScript/issues/27>
 | ||||
| 
 | ||||
|   function toLocalISOString(dateOrStr) { | ||||
|     var d; | ||||
|     if (dateOrStr) { | ||||
|       d = new Date(dateOrStr); | ||||
|     } else { | ||||
|       d = new Date(); | ||||
|     } | ||||
| 
 | ||||
|     var YYYY = d.getFullYear(); | ||||
|     var MM = p2(d.getMonth() + 1); | ||||
|     var DD = p2(d.getDate()); | ||||
|     var hh = p2(d.getHours()); | ||||
|     var mm = p2(d.getMinutes()); | ||||
|     var ss = p2(d.getSeconds()); | ||||
|     var sss = d.getMilliseconds().toString().padStart(3, "0"); | ||||
| 
 | ||||
|     var offset = formatOffset(-d.getTimezoneOffset()); | ||||
| 
 | ||||
|     return `${YYYY}-${MM}-${DD}T${hh}:${mm}:${ss}.${sss}${offset}`; | ||||
|   } | ||||
| 
 | ||||
|   function formatOffset(minutes) { | ||||
|     if (!minutes) { | ||||
|       return "Z"; | ||||
|     } | ||||
| 
 | ||||
|     var h = Math.floor(Math.abs(minutes) / 60); | ||||
|     var m = Math.abs(minutes) % 60; | ||||
|     var offset = ""; | ||||
|     if (minutes > 0) { | ||||
|       offset = "+"; | ||||
|     } else if (minutes < 0) { | ||||
|       offset = "-"; | ||||
|     } | ||||
| 
 | ||||
|     // +0500, -0730
 | ||||
|     return offset + p2(h) + p2(m); | ||||
|   } | ||||
| 
 | ||||
|   function p2(x) { | ||||
|     return String(x).padStart(2, "0"); | ||||
|   } | ||||
| 
 | ||||
|   exports.toLocalISOString = toLocalISOString; | ||||
| })(("undefined" === typeof module && window) || exports); | ||||
							
								
								
									
										28
									
								
								xtz.js
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								xtz.js
									
									
									
									
									
								
							| @ -98,7 +98,9 @@ var XTZ; | ||||
|     } | ||||
| 
 | ||||
|     // +0500, -0730
 | ||||
|     return offset + p2(h) + p2(m); | ||||
|     return ( | ||||
|       offset + h.toString().padStart(2, "0") + m.toString().padStart(2, "0") | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   function toOffsetISOString(d) { | ||||
| @ -153,27 +155,6 @@ var XTZ; | ||||
|     return toOffsetISOString(whole); | ||||
|   } | ||||
| 
 | ||||
|   function toLocalISOString(dateOrStr) { | ||||
|     var d; | ||||
|     if (dateOrStr) { | ||||
|       d = new Date(dateOrStr); | ||||
|     } else { | ||||
|       d = new Date(); | ||||
|     } | ||||
| 
 | ||||
|     var YYYY = d.getFullYear(); | ||||
|     var MM = p2(d.getMonth() + 1); | ||||
|     var DD = p2(d.getDate()); | ||||
|     var hh = p2(d.getHours()); | ||||
|     var mm = p2(d.getMinutes()); | ||||
|     var ss = p2(d.getSeconds()); | ||||
|     var sss = d.getMilliseconds().toString().padStart(3, "0"); | ||||
| 
 | ||||
|     var offset = formatOffset(-d.getTimezoneOffset()); | ||||
| 
 | ||||
|     return `${YYYY}-${MM}-${DD}T${hh}:${mm}:${ss}.${sss}${offset}`; | ||||
|   } | ||||
| 
 | ||||
|   XTZ = { | ||||
|     // bespoke date =>
 | ||||
|     // 2021-11-07T3:15:59-0500
 | ||||
| @ -182,9 +163,6 @@ var XTZ; | ||||
|     // -240 => -0400
 | ||||
|     formatOffset: formatOffset, | ||||
| 
 | ||||
|     // new Date() => "2021-11-07T03:15:59-0500"
 | ||||
|     toLocalISOString: toLocalISOString, | ||||
| 
 | ||||
|     // [ "2021-11-07T08:15:59Z", "America/New_York" ]
 | ||||
|     // => "2021-11-07T03:15:59-0500" // 2021-11-07 03:15:59
 | ||||
|     toTimeZone: toTimeZone, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user