UNPKG

d3-time-format

Version:

A JavaScript time formatter and parser inspired by strftime and strptime.

3 lines (2 loc) • 9.86 kB
// https://d3js.org/d3-time-format/ v4.1.1 Copyright 2010-2026 Mike Bostock !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-time")):"function"==typeof define&&define.amd?define(["exports","d3-time"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{},t.d3)}(this,function(t,e){"use strict";function n(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function r(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function u(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function i(t){var i=t.dateTime,c=t.date,a=t.time,f=t.periods,l=t.days,s=t.shortDays,g=t.months,G=t.shortMonths,gt=d(f),pt=y(f),wt=d(l),St=y(l),Yt=d(s),Ft=y(s),Lt=d(g),Ht=y(g),At=d(G),Zt=y(G),bt={a:function(t){return s[t.getDay()]},A:function(t){return l[t.getDay()]},b:function(t){return G[t.getMonth()]},B:function(t){return g[t.getMonth()]},c:null,d:P,e:P,f:J,g:_,G:K,H:V,I:j,j:q,L:I,m:Q,M:X,p:function(t){return f[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:Ut,s:xt,S:O,u:N,U:B,V:$,w:z,W:E,x:null,X:null,y:R,Y:k,Z:tt,"%":Ct},Wt={a:function(t){return s[t.getUTCDay()]},A:function(t){return l[t.getUTCDay()]},b:function(t){return G[t.getUTCMonth()]},B:function(t){return g[t.getUTCMonth()]},c:null,d:et,e:et,f:ct,g:vt,G:Mt,H:nt,I:rt,j:ut,L:it,m:ot,M:at,p:function(t){return f[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:Ut,s:xt,S:ft,u:lt,U:st,V:dt,w:yt,W:ht,x:null,X:null,y:mt,Y:Tt,Z:Dt,"%":Ct},Pt={a:function(t,e,n){var r=Yt.exec(e.slice(n));return r?(t.w=Ft.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(t,e,n){var r=wt.exec(e.slice(n));return r?(t.w=St.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(t,e,n){var r=At.exec(e.slice(n));return r?(t.m=Zt.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(t,e,n){var r=Lt.exec(e.slice(n));return r?(t.m=Ht.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(t,e,n){return qt(t,i,e,n)},d:w,e:w,f:A,g:C,G:D,H:Y,I:Y,j:S,L:H,m:p,M:F,p:function(t,e,n){var r=gt.exec(e.slice(n));return r?(t.p=pt.get(r[0].toLowerCase()),n+r[0].length):-1},q:x,Q:b,s:W,S:L,u:m,U:v,V:T,w:h,W:M,x:function(t,e,n){return qt(t,c,e,n)},X:function(t,e,n){return qt(t,a,e,n)},y:C,Y:D,Z:U,"%":Z};function Vt(t,e){return function(n){var r,u,i,c=[],a=-1,f=0,l=t.length;for(n instanceof Date||(n=new Date(+n));++a<l;)37===t.charCodeAt(a)&&(c.push(t.slice(f,a)),null!=(u=o[r=t.charAt(++a)])?r=t.charAt(++a):u="e"===r?" ":"0",(i=e[r])&&(r=i(n,u)),c.push(r),f=a+1);return c.push(t.slice(f,a)),c.join("")}}function jt(t,i){return function(c){var o,a,f=u(1900,void 0,1);if(qt(f,t,c+="",0)!=c.length)return null;if("Q"in f)return new Date(f.Q);if("s"in f)return new Date(1e3*f.s+("L"in f?f.L:0));if(i&&!("Z"in f)&&(f.Z=0),"p"in f&&(f.H=f.H%12+12*f.p),void 0===f.m&&(f.m="q"in f?f.q:0),"V"in f){if(f.V<1||f.V>53)return null;"w"in f||(f.w=1),"Z"in f?(a=(o=r(u(f.y,0,1))).getUTCDay(),o=a>4||0===a?e.utcMonday.ceil(o):e.utcMonday(o),o=e.utcDay.offset(o,7*(f.V-1)),f.y=o.getUTCFullYear(),f.m=o.getUTCMonth(),f.d=o.getUTCDate()+(f.w+6)%7):(a=(o=n(u(f.y,0,1))).getDay(),o=a>4||0===a?e.timeMonday.ceil(o):e.timeMonday(o),o=e.timeDay.offset(o,7*(f.V-1)),f.y=o.getFullYear(),f.m=o.getMonth(),f.d=o.getDate()+(f.w+6)%7)}else("W"in f||"U"in f)&&("w"in f||(f.w="u"in f?f.u%7:"W"in f?1:0),a="Z"in f?r(u(f.y,0,1)).getUTCDay():n(u(f.y,0,1)).getDay(),f.m=0,f.d="W"in f?(f.w+6)%7+7*f.W-(a+5)%7:f.w+7*f.U-(a+6)%7);return"Z"in f?(f.H+=f.Z/100|0,f.M+=f.Z%100,r(f)):n(f)}}function qt(t,e,n,r){for(var u,i,c=0,a=e.length,f=n.length;c<a;){if(r>=f)return-1;if(37===(u=e.charCodeAt(c++))){if(u=e.charAt(c++),!(i=Pt[u in o?e.charAt(c++):u])||(r=i(t,n,r))<0)return-1}else if(u!=n.charCodeAt(r++))return-1}return r}return bt.x=Vt(c,bt),bt.X=Vt(a,bt),bt.c=Vt(i,bt),Wt.x=Vt(c,Wt),Wt.X=Vt(a,Wt),Wt.c=Vt(i,Wt),{format:function(t){var e=Vt(t+="",bt);return e.toString=function(){return t},e},parse:function(t){var e=jt(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=Vt(t+="",Wt);return e.toString=function(){return t},e},utcParse:function(t){var e=jt(t+="",!0);return e.toString=function(){return t},e}}}var c,o={"-":"",_:" ",0:"0"},a=/^\s*\d+/,f=/^%/,l=/[\\^$*+?|[\]().{}]/g;function s(t,e,n){var r=t<0?"-":"",u=(r?-t:t)+"",i=u.length;return r+(i<n?new Array(n-i+1).join(e)+u:u)}function g(t){return t.replace(l,"\\$&")}function d(t){return new RegExp("^(?:"+t.map(g).join("|")+")","i")}function y(t){return new Map(t.map((t,e)=>[t.toLowerCase(),e]))}function h(t,e,n){var r=a.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function m(t,e,n){var r=a.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function v(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function T(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function M(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function D(t,e,n){var r=a.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function C(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function U(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function x(t,e,n){var r=a.exec(e.slice(n,n+1));return r?(t.q=3*r[0]-3,n+r[0].length):-1}function p(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function w(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function S(t,e,n){var r=a.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Y(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function F(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function L(t,e,n){var r=a.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function H(t,e,n){var r=a.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function A(t,e,n){var r=a.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Z(t,e,n){var r=f.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function b(t,e,n){var r=a.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function W(t,e,n){var r=a.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function P(t,e){return s(t.getDate(),e,2)}function V(t,e){return s(t.getHours(),e,2)}function j(t,e){return s(t.getHours()%12||12,e,2)}function q(t,n){return s(1+e.timeDay.count(e.timeYear(t),t),n,3)}function I(t,e){return s(t.getMilliseconds(),e,3)}function J(t,e){return I(t,e)+"000"}function Q(t,e){return s(t.getMonth()+1,e,2)}function X(t,e){return s(t.getMinutes(),e,2)}function O(t,e){return s(t.getSeconds(),e,2)}function N(t){var e=t.getDay();return 0===e?7:e}function B(t,n){return s(e.timeSunday.count(e.timeYear(t)-1,t),n,2)}function G(t){var n=t.getDay();return n>=4||0===n?e.timeThursday(t):e.timeThursday.ceil(t)}function $(t,n){return t=G(t),s(e.timeThursday.count(e.timeYear(t),t)+(4===e.timeYear(t).getDay()),n,2)}function z(t){return t.getDay()}function E(t,n){return s(e.timeMonday.count(e.timeYear(t)-1,t),n,2)}function R(t,e){return s(t.getFullYear()%100,e,2)}function _(t,e){return s((t=G(t)).getFullYear()%100,e,2)}function k(t,e){return s(t.getFullYear()%1e4,e,4)}function K(t,n){var r=t.getDay();return s((t=r>=4||0===r?e.timeThursday(t):e.timeThursday.ceil(t)).getFullYear()%1e4,n,4)}function tt(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+s(e/60|0,"0",2)+s(e%60,"0",2)}function et(t,e){return s(t.getUTCDate(),e,2)}function nt(t,e){return s(t.getUTCHours(),e,2)}function rt(t,e){return s(t.getUTCHours()%12||12,e,2)}function ut(t,n){return s(1+e.utcDay.count(e.utcYear(t),t),n,3)}function it(t,e){return s(t.getUTCMilliseconds(),e,3)}function ct(t,e){return it(t,e)+"000"}function ot(t,e){return s(t.getUTCMonth()+1,e,2)}function at(t,e){return s(t.getUTCMinutes(),e,2)}function ft(t,e){return s(t.getUTCSeconds(),e,2)}function lt(t){var e=t.getUTCDay();return 0===e?7:e}function st(t,n){return s(e.utcSunday.count(e.utcYear(t)-1,t),n,2)}function gt(t){var n=t.getUTCDay();return n>=4||0===n?e.utcThursday(t):e.utcThursday.ceil(t)}function dt(t,n){return t=gt(t),s(e.utcThursday.count(e.utcYear(t),t)+(4===e.utcYear(t).getUTCDay()),n,2)}function yt(t){return t.getUTCDay()}function ht(t,n){return s(e.utcMonday.count(e.utcYear(t)-1,t),n,2)}function mt(t,e){return s(t.getUTCFullYear()%100,e,2)}function vt(t,e){return s((t=gt(t)).getUTCFullYear()%100,e,2)}function Tt(t,e){return s(t.getUTCFullYear()%1e4,e,4)}function Mt(t,n){var r=t.getUTCDay();return s((t=r>=4||0===r?e.utcThursday(t):e.utcThursday.ceil(t)).getUTCFullYear()%1e4,n,4)}function Dt(){return"+0000"}function Ct(){return"%"}function Ut(t){return+t}function xt(t){return Math.floor(+t/1e3)}function pt(e){return c=i(e),t.timeFormat=c.format,t.timeParse=c.parse,t.utcFormat=c.utcFormat,t.utcParse=c.utcParse,c}t.timeFormat=void 0,t.timeParse=void 0,t.utcFormat=void 0,t.utcParse=void 0,pt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var wt="%Y-%m-%dT%H:%M:%S.%LZ";var St=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(wt);var Yt=+new Date("2000-01-01T00:00:00.000Z")?function(t){var e=new Date(t);return isNaN(e)?null:e}:t.utcParse(wt);t.isoFormat=St,t.isoParse=Yt,t.timeFormatDefaultLocale=pt,t.timeFormatLocale=i});