1import{_ as P}from"./api-teaser.vue_vue_type_script_setup_true_lang-DIn4aaM2.js";import{_ as V}from"./faq-grid.vue_vue_type_script_setup_true_lang-74HEoIgq.js";import{u as W}from"./useOffsetClock-BripLxOA.js";import{u as F}from"./useVisitorClock-BQgLK6IU.js";import{b as H}from"./routes-D1UmUyzP.js";import{d as E,f as a,i as O,o as x,w as y,b as e,c as _,t as s,q as d,u as c,e as o,g as j,F as S,l as D,a as b,h as K,n as Z,r as A}from"./app-BqWDJPtg.js";import{_ as R}from"./sky-backdrop.vue_vue_type_script_setup_true_lang-DCXTZFjW.js";import{u as J}from"./useVisitorSun-C3vUPSZ9.js";import{_ as Q}from"./SiteLayout.vue_vue_type_script_setup_true_lang-BqJWiZRG.js";import{h as q,i as X,a as Y,s as ee,d as te}from"./sky-DXkdpGw6.js";import"./index-1RPEAXtU.js";import"./index-CnIPgObh.js";import"./AppLogo.vue_vue_type_script_setup_true_lang-B6_IqBdH.js";const se={class:"flex items-center justify-between"},oe={class:"font-mono text-[17px] font-semibold tracking-[-0.01em]"},ne={key:1,"aria-hidden":"true",class:"text-sm"},ae={class:"mt-3 flex items-baseline gap-2.5"},ie={class:"font-mono text-[34px] leading-none font-light tracking-[-0.03em] tabular-nums","data-allow-mismatch":"text"},le={class:"text-[11px] opacity-80","data-allow-mismatch":"text"},re={class:"text-xs leading-snug opacity-85"},ue={class:"mt-1.5 text-[11px] opacity-65"},de=E({__name:"offset-ladder-card",props:{offsetMinutes:{},formatted:{},slug:{},zonesCount:{},countriesCount:{},anchors:{}},setup($){const l=$,{isDay:m,background:g,hm:U}=W(a(()=>l.offsetMinutes)),{now:f,mounted:p}=F(),w=a(()=>new Date(f.value.getTime()+l.offsetMinutes*6e4)),h=a(()=>p.value?new Intl.DateTimeFormat("en-US",{weekday:"short",timeZone:"UTC"}).format(w.value):""),v=a(()=>{if(!p.value)return 0;const u=864e5;return Math.floor(w.value.getTime()/u)-Math.floor(f.value.getTime()/u)}),k=a(()=>v.value<0?"yesterday vs UTC":v.value>0?"tomorrow vs UTC":""),T=a(()=>l.offsetMinutes%60!==0),C=a(()=>l.formatted.replace("-","â")),z=a(()=>m.value?"#1d1916":"#ffffff"),r=a(()=>m.value?"rgba(30,30,40,0.15)":"rgba(255,255,255,0.15)"),N=a(()=>({background:m.value?"rgba(255,255,255,0.6)":"rgba(15,18,30,0.45)",borderColor:m.value?"rgba(255,255,255,0.7)":"rgba(255,255,255,0.18)"}));return(u,I)=>(x(),O(c(D),{href:c(H).offsets.show(u.slug),class:"block overflow-hidden rounded-2xl border border-hairline px-5 pt-4 pb-4 transition hover:-translate-y-0.5 hover:shadow-sm",style:d({background:c(g),color:z.value})},{default:y(()=>[e("div",se,[e("span",oe,s(C.value),1),T.value?(x(),_("span",{key:0,class:"rounded-full border px-2 py-0.5 text-[10px] font-semibold tracking-[0.08em] uppercase opacity-90",style:d(N.value)}," unusual ",4)):(x(),_("span",ne,s(c(m)?"â":"â¾"),1))]),e("div",ae,[e("span",ie,s(c(U)),1),e("span",le,[o(s(h.value),1),k.value?(x(),_(S,{key:0},[o(" · "+s(k.value),1)],64)):j("",!0)])]),e("hr",{class:"mt-3 mb-2.5 border-0 border-t",style:d({borderColor:r.value})},null,4),e("div",re,s(u.anchors.join(" · ")),1),e("div",ue,s(u.zonesCount)+" "+s(u.zonesCount===1?"zone":"zones")+" · "+s(u.countriesCount)+" "+s(u.countriesCount===1?"country":"countries"),1)]),_:1},8,["href","style"]))}}),ce=["content"],me=["content"],fe={class:"bg-canvas text-ink"},pe={class:"mx-auto max-w-7xl px-4 pt-6 text-sm text-ink-soft sm:px-6 lg:px-8"},he={class:"mx-auto max-w-7xl px-4 pt-6 sm:px-6 sm:pt-8 lg:px-8"},xe={class:"grid h-full gap-10 p-7 sm:p-10 lg:grid-cols-[1.35fr_1fr] lg:gap-12 lg:p-14"},ge={class:"flex flex-col justify-end"},ve={class:"flex items-baseline justify-between"},be={class:"text-[0.55em] opacity-55"},ye={"data-allow-mismatch":"text"},we={class:"mt-4"},ke={class:"mx-auto mt-8 max-w-7xl px-4 sm:mt-10 sm:px-6 lg:px-8"},_e={class:"grid grid-cols-2 gap-3 lg:grid-cols-4"},Te={class:"rounded-2xl border border-hairline bg-panel px-5 py-5 sm:px-6 sm:py-6"},Ce={class:"mt-2 font-mono text-4xl font-light tracking-tighter text-ink tabular-nums"},Ue={class:"mt-1 text-xs text-ink-faint"},ze={class:"rounded-2xl border border-hairline bg-panel px-5 py-5 sm:px-6 sm:py-6"},Se={class:"mt-2 font-mono text-4xl font-light tracking-tighter text-ink tabular-nums"},$e={class:"mt-1 text-xs text-ink-faint"},Ne={class:"rounded-2xl border border-hairline bg-panel px-5 py-5 sm:px-6 sm:py-6"},De={class:"mt-2 font-mono text-4xl font-light tracking-tighter text-ink tabular-nums"},Ie={class:"rounded-2xl border border-hairline bg-panel px-5 py-5 sm:px-6 sm:py-6"},Me={class:"mt-2 font-mono text-4xl font-light tracking-tighter text-ink tabular-nums"},Ae={class:"mx-auto mt-16 max-w-7xl px-4 sm:mt-20 sm:px-6 lg:px-8"},qe={class:"flex flex-wrap items-baseline justify-between gap-2"},Fe={class:"mt-1.5 font-serif text-4xl leading-[1.02] tracking-[-0.025em] sm:text-5xl"},He={class:"mt-7 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4"},Ee={class:"mx-auto mt-16 max-w-7xl px-4 sm:mt-24 sm:px-6 lg:px-8"},Oe={class:"grid gap-10 lg:grid-cols-[1fr_2fr] lg:gap-16"},Be={class:"max-w-3xl space-y-4 text-[17px] leading-[1.65] text-ink-soft"},Ge={class:"mx-auto mt-16 max-w-7xl px-4 sm:mt-24 sm:px-6 lg:px-8"},Le={class:"mt-6 grid grid-cols-1 gap-3.5 sm:grid-cols-2"},Pe={class:"text-[11px] font-semibold tracking-[0.16em] text-ink-soft uppercase"},Ve={class:"mt-2.5 font-serif text-[23px] leading-tight tracking-[-0.01em] text-ink"},We={class:"mt-2.5 text-[15px] leading-[1.55] text-ink-soft"},je={class:"mx-auto mt-20 max-w-7xl px-4 sm:mt-28 sm:px-6 lg:px-8"},Ke={class:"mx-auto mt-20 max-w-7xl px-4 pb-20 sm:mt-28 sm:px-6 sm:pb-28 lg:px-8"},lt=E({__name:"Index",props:{offsets:{},stats:{},visitorSun:{},visitorNow:{}},setup($){const l=$,m=J(l.visitorSun),g=n=>String(n).padStart(2,"0");function U(n){const t=n>=0?"+":"â",i=Math.abs(n);return`UTC${t}${g(Math.floor(i/60))}:${g(i%60)}`}const f=a(()=>U(l.stats.min_offset_minutes)),p=a(()=>U(l.stats.max_offset_minutes)),w=a(()=>{const n=(l.stats.max_offset_minutes-l.stats.min_offset_minutes)/60;return Number.isInteger(n)?`${n}`:n.toFixed(2)}),{now:h,mounted:v}=F(),k=a(()=>{const n=m.value;return n?q(new Date(n.sunrise_iso),n.iana):void 0}),T=a(()=>{const n=m.value;return n?q(new Date(n.sunset_iso),n.iana):void 0}),C=a(()=>v.value?h.value.getHours()+h.value.getMinutes()/60:l.visitorNow?.hour??12),z=a(()=>X(C.value,k.value,T.value)),r=a(()=>Y(ee(C.value,k.value,T.value))),N=a(()=>te(z.value)),u=a(()=>v.value?`${g(h.value.getUTCHours())}:${g(h.value.getUTCMinutes())}`:"--:--"),I=a(()=>v.value?g(h.value.getUTCSeconds()):"--"),B=a(()=>v.value?new Intl.DateTimeFormat("en-US",{weekday:"long",month:"long",day:"numeric",timeZone:"UTC"}).format(h.value):""),G=[{eyebrow:"Same time, different day",title:"UTC+14 and UTCâ10 show identical clock faces.",body:"When itâs 14:00 Tuesday in Honolulu (UTCâ10), itâs 14:00 Wednesday in Kiritimati (UTC+14) â the same time, 24 hours apart. The two rungs bracket the entire ladder."},{eyebrow:"The 45-minute club",title:"Nepal runs at UTC+05:45 â one of only three.",body:"Just three offsets arenât divisible by 30 minutes: Nepal (+05:45), the Chatham Islands (+12:45), and Eucla, Australia (+08:45) â a roadhouse community of about 50 people with its own offset."},{eyebrow:"One country, twelve rungs",title:"France spans 12 offsets thanks to its territories.",body:"From French Polynesia at UTCâ10 to Wallis & Futuna at UTC+12, the French Republic touches more rungs of the ladder than any other country â Russia and the United States each manage 11."},{eyebrow:"The ladder moves",title:"When DST flips, whole regions hop a rung.",body:"Each March and October, hundreds of millions of clocks step one rung up or down overnight. The ladder itself is stable â itâs the zones that climb between rungs."}],L=[{question:"Whatâs the difference between UTC and GMT?",answer:'UTC is the modern atomic-clock standard; GMT is the historical astronomical time at the Greenwich meridian. They differ by less than a second and are interchangeable in everyday use â but UTC is the correct term, and "GMTâ10" and "UTCâ10" mean the same offset.'},{question:"Why do some places use half-hour offsets?",answer:"Geography and politics, not astronomy. Countries sitting midway between two hour-lines sometimes split the difference: India chose UTC+05:30, Iran +03:30, Newfoundland â03:30. Nepal and the Chatham Islands went further, to 45-minute marks, to keep clocks distinct from larger neighbours."},{question:"What are the highest and lowest UTC offsets?",answer:"The highest is UTC+14:00, used by Kiribatiâs Line Islands (Kiritimati). The lowest in use is UTCâ11:00, kept by American Samoa and Niue. UTCâ12:00 exists in the database for two uninhabited US islands, but no one lives there to keep it."},{question:"Is UTC itself a time zone?",answer:'No â UTC is the reference standard the offsets count from. No country keeps "UTC" as its civil time, though several zones (Iceland, Ghana, Senegal) sit at UTC+00:00 year-round, and aviation, shipping, and server logs run on UTC by convention.'}],M=a(()=>`Browse all ${l.stats.offsets_in_use} UTC offsets in use right now, from ${f.value} to ${p.value} â each with a live clock and the zones, countries, and cities that keep it.`);return(n,t)=>(x(),_(S,null,[b(c(K),null,{default:y(()=>[t[0]||(t[0]=e("title",null,"UTC Offsets â Every Time Offset in Use Today",-1)),e("meta",{name:"description",content:M.value},null,8,ce),t[1]||(t[1]=e("meta",{property:"og:title",content:"UTC Offsets â Every Time Offset in Use Today"},null,-1)),e("meta",{property:"og:description",content:M.value},null,8,me)]),_:1,__:[0,1]}),b(Q,null,{default:y(()=>[e("div",fe,[e("nav",pe,[b(c(D),{href:"/",class:"hover:text-ink"},{default:y(()=>t[2]||(t[2]=[o("Home",-1)])),_:1,__:[2]}),t[3]||(t[3]=e("span",{class:"text-ink-faint"}," / ",-1)),t[4]||(t[4]=e("span",{class:"text-ink"},"UTC offsets",-1))]),e("section",he,[b(R,{hour:C.value,"sunrise-hour":k.value,"sunset-hour":T.value},{default:y(()=>[e("div",xe,[e("div",ge,[e("p",{class:"text-[11px] font-semibold tracking-[0.16em] uppercase",style:d({color:r.value.eyebrow})}," The numeric ladder · "+s(f.value)+" to "+s(p.value),5),e("h1",{class:"mt-3 font-serif text-5xl leading-[0.95] tracking-[-0.035em] sm:text-7xl",style:d({color:r.value.headline})},t[5]||(t[5]=[o(" Every UTC offset",-1),e("br",null,null,-1),o("in use right now. ",-1)]),4),e("p",{class:"mt-5 max-w-xl text-lg leading-relaxed",style:d({color:r.value.body})},[o(" The world currently runs on "+s(n.stats.offsets_in_use)+" offsets, from "+s(f.value)+" to "+s(p.value)+" â including "+s(n.stats.non_hour_count)+" that aren't whole hours. An offset is a number, not a time zone: each rung below hosts every n
1amed zone that keeps it. Browsing zones instead? See ",1),b(c(D),{href:c(H).zones.index(),class:"underline underline-offset-3"},{default:y(()=>t[6]||(t[6]=[o("the zones index",-1)])),_:1,__:[6]},8,["href"]),t[7]||(t[7]=o(". ",-1))],4)]),e("div",{class:"flex flex-col justify-end rounded-2xl border p-6 backdrop-blur-xl sm:p-7",style:d({background:r.value.cardBg,borderColor:r.value.cardBorder})},[e("div",ve,[e("span",{class:"text-[11px] font-semibold tracking-[0.16em] uppercase",style:d({color:r.value.cardEyebrow})}," Coordinated Universal Time ",4),e("span",{class:"font-mono text-xs",style:d({color:r.value.cardSub})}," ±00:00 ",4)]),e("div",{class:"mt-3.5 font-mono text-6xl leading-[0.95] font-light tracking-[-0.04em] tabular-nums sm:text-7xl",style:d({color:r.value.cardInk}),"data-allow-mismatch":"text"},[o(s(u.value),1),e("span",be,":"+s(I.value),1)],4),e("div",{class:"mt-2 flex items-center gap-2 text-[13px]",style:d({color:r.value.cardSub})},[e("span",ye,s(B.value)+" · the reference everything below counts from ",1)],4),e("div",we,[e("span",{class:Z(["inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-[11px] font-medium",N.value])},s(z.value?"â Daylight where you are":"â¾ Night where you are"),3)])],4)])]),_:1},8,["hour","sunrise-hour","sunset-hour"])]),e("section",ke,[e("div",_e,[e("div",Te,[t[8]||(t[8]=e("p",{class:"text-[10px] font-semibold tracking-[0.14em] text-ink-soft uppercase"}," Offsets in use ",-1)),e("p",Ce,s(n.stats.offsets_in_use),1),e("p",Ue,s(f.value)+" west to "+s(p.value)+" east ",1)]),e("div",ze,[t[9]||(t[9]=e("p",{class:"text-[10px] font-semibold tracking-[0.14em] text-ink-soft uppercase"}," Total span ",-1)),e("p",Se,s(w.value)+"h ",1),e("p",$e," the same instant, "+s(w.value)+" hours of clock faces ",1)]),e("div",Ne,[t[10]||(t[10]=e("p",{class:"text-[10px] font-semibold tracking-[0.14em] text-ink-soft uppercase"}," Not whole hours ",-1)),e("p",De,s(n.stats.non_hour_count),1),t[11]||(t[11]=e("p",{class:"mt-1 text-xs text-ink-faint"}," half- and quarter-hour offsets ",-1))]),e("div",Ie,[t[12]||(t[12]=e("p",{class:"text-[10px] font-semibold tracking-[0.14em] text-ink-soft uppercase"}," Zones that shift ",-1)),e("p",Me,s(n.stats.shifting_zones_count),1),t[13]||(t[13]=e("p",{class:"mt-1 text-xs text-ink-faint"}," IANA zones that hop rungs with DST ",-1))])])]),e("section",Ae,[e("div",qe,[e("div",null,[t[14]||(t[14]=e("p",{class:"text-[11px] font-semibold tracking-[0.16em] text-ink-soft uppercase"}," The ladder · west to east ",-1)),e("h2",Fe,s(n.stats.offsets_in_use)+" rungs around the planet. ",1)]),t[15]||(t[15]=e("p",{class:"text-sm text-ink-soft"}," each card shows that offset's local sky, right now ",-1))]),e("div",He,[(x(!0),_(S,null,A(n.offsets,i=>(x(),O(de,{key:i.slug,"offset-minutes":i.offset_minutes,formatted:i.formatted,slug:i.slug,"zones-count":i.zones_count,"countries-count":i.countries_count,anchors:i.anchors},null,8,["offset-minutes","formatted","slug","zones-count","countries-count","anchors"]))),128))])]),e("section",Ee,[e("div",Oe,[t[18]||(t[18]=e("div",null,[e("p",{class:"text-[11px] font-semibold tracking-[0.16em] text-ink-soft uppercase"}," How offsets work "),e("h2",{class:"mt-2 font-serif text-4xl leading-[1.02] tracking-[-0.025em] sm:text-5xl"},[o(" A number,"),e("br"),o("not a place. ")])],-1)),e("div",Be,[t[16]||(t[16]=e("p",null,[o(" Every clock on Earth is set relative to one reference: Coordinated Universal Time (UTC), kept by a network of atomic clocks. A UTC offset is simply the difference between a region's clocks and that reference â "),e("span",{class:"font-mono text-ink"},"UTC+07:00"),o(" means seven hours ahead, "),e("span",{class:"font-mono text-ink"},"UTCâ10:00"),o(" means ten hours behind. Add the offset to UTC and you have the local time, no further rules required. ")],-1)),t[17]||(t[17]=e("p",null," An offset is not a time zone â this is the distinction people most often get wrong. A single offset can host dozens of named zones with entirely different daylight-saving rules: UTC+02:00 is currently kept by Paris (which will leave it in October), Cairo (which leaves it in April), and Johannesburg (which never leaves). Two places sharing an offset today may be an hour apart next month. That's why software stores zone identifiers, while offsets are best for arithmetic and quick reading of a timestamp. ",-1)),e("p",null," The ladder runs from "+s(f.value)+" to "+s(p.value)+" â a "+s(w.value)+"-hour span, not 24, because nations near the Date Line chose which side of it to live on. Kiribati moved its eastern islands to UTC+14 in 1995 so the whole country could share a business week. And the half- and quarter-hour rungs are politics and geography, not astronomy: India compromised between two hour-lines at +05:30, Nepal nudged 15 minutes further to keep its own clock, and the Chatham Islands hold +12:45 for the same reason. ",1)])])]),e("section",Ge,[t[19]||(t[19]=e("div",null,[e("p",{class:"text-[11px] font-semibold tracking-[0.16em] text-ink-soft uppercase"}," Curiosities "),e("h2",{class:"mt-2 font-serif text-4xl leading-[1.02] tracking-[-0.025em] sm:text-[42px]"}," Four oddities of the ladder. ")],-1)),e("div",Le,[(x(),_(S,null,A(G,i=>e("div",{key:i.eyebrow,class:"rounded-2xl border border-hairline bg-panel px-7 py-6"},[e("p",Pe,s(i.eyebrow),1),e("h3",Ve,s(i.title),1),e("p",We,s(i.body),1)])),64))])]),e("section",je,[b(V,{faqs:L,intro:"Common questions about UTC offsets and how they relate to time zones."})]),e("section",Ke,[b(P,{title:"Filter zones by offset.",description:"One query returns every zone whose standard time is a given offset, each with its live offset and DST status."},{example:y(()=>t[20]||(t[20]=[e("div",{class:"text-[#7a8696]"}," // every zone on UTCâ10 standard time ",-1),e("div",null,[e("span",{class:"text-[#3bd494]"},"GET"),o(" /v1/timezones?offset="),e("span",{class:"text-[#e8b76a]"},"-10:00")],-1),e("div",{class:"mt-3 text-[#7a8696]"},"{",-1),e("div",{class:"pl-4"},[e("span",{class:"text-[#a8b0c0]"},'"data"'),o(": [ ")],-1),e("div",{class:"pl-8"},[o(" { "),e("span",{class:"text-[#a8b0c0]"},'"iana"'),o(": "),e("span",{class:"text-[#e8b76a]"},'"America/Adak"'),o(", ⦠}, ")],-1),e("div",{class:"pl-8"},[o(" { "),e("span",{class:"text-[#a8b0c0]"},'"iana"'),o(": "),e("span",{class:"text-[#e8b76a]"},'"Pacific/Honolulu"'),o(", ⦠}, ")],-1),e("div",{class:"pl-8"},[o(" { "),e("span",{class:"text-[#a8b0c0]"},'"iana"'),o(": "),e("span",{class:"text-[#e8b76a]"},'"Pacific/Rarotonga"'),o(", ⦠}, ")],-1),e("div",{class:"pl-8"},[o(" { "),e("span",{class:"text-[#a8b0c0]"},'"iana"'),o(": "),e("span",{class:"text-[#e8b76a]"},'"Pacific/Tahiti"'),o(", ⦠} ")],-1),e("div",{class:"pl-4"},"]",-1),e("div",{class:"text-[#7a8696]"},"}",-1)])),_:1})])])]),_:1})],64))}});
1export{lt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.