{"id":222,"date":"2021-02-06T13:32:48","date_gmt":"2021-02-06T12:32:48","guid":{"rendered":"https:\/\/www.ahmadiyya-islam.org\/pl\/?page_id=222"},"modified":"2026-06-11T16:54:56","modified_gmt":"2026-06-11T14:54:56","slug":"czas-modlitwy-czas-salah-dla-calego-swiata","status":"publish","type":"page","link":"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/","title":{"rendered":"Czas Modlitw"},"content":{"rendered":"<p>KSESTEST<\/p>\n<p>KSESTEST-ENDE<\/p>\n<p><!-- ============================================================\n     CZAS MODLITWY \u2013 Widget v2 (Ahmadiyya Muslim Jamaat Polska)\n     Tagesansicht + Monatsansicht + A4-Druck\n     WordPress Classic Editor: im Tab \"Code\" einf\u00fcgen (NICHT \"Visual\")\n     ============================================================ --><\/p>\n<div id=\"amjpt\" class=\"amjpt\">\n<div class=\"amjpt-head\">\n<div class=\"amjpt-city-row\">\n<p>      <span id=\"amjpt-city\" class=\"amjpt-city\">Ustalanie lokalizacji\u2026<\/span><br \/>\n      <button id=\"amjpt-change\" class=\"amjpt-link\" type=\"button\">Zmie\u0144 miasto<\/button>\n    <\/div>\n<div id=\"amjpt-search\" class=\"amjpt-search\" hidden>\n<div id=\"amjpt-results\" class=\"amjpt-results\" hidden><\/div>\n<p>      <button id=\"amjpt-geobtn\" class=\"amjpt-link amjpt-geobtn\" type=\"button\">U\u017cyj mojej lokalizacji<\/button>\n    <\/div>\n<div class=\"amjpt-tabs\">\n      <button id=\"amjpt-tab-day\" class=\"amjpt-tab amjpt-tab-on\" type=\"button\">Dzi\u015b<\/button><br \/>\n      <button id=\"amjpt-tab-month\" class=\"amjpt-tab\" type=\"button\">Ca\u0142y miesi\u0105c<\/button><br \/>\n      <button id=\"amjpt-print\" class=\"amjpt-printbtn\" type=\"button\" hidden>\ud83d\udda8 Drukuj (A4)<\/button>\n    <\/div>\n<\/p><\/div>\n<div id=\"amjpt-status\" class=\"amjpt-status\" hidden><\/div>\n<p>  <!-- Tagesansicht --><\/p>\n<div id=\"amjpt-dayview\">\n<div class=\"amjpt-date-row\">\n      <button id=\"amjpt-prev\" class=\"amjpt-nav\" type=\"button\" aria-label=\"Poprzedni dzie\u0144\">\u2039<\/button><\/p>\n<div class=\"amjpt-dates\">\n        <span id=\"amjpt-date\" class=\"amjpt-date\"><\/span><br \/>\n        <span id=\"amjpt-hijri\" class=\"amjpt-hijri\"><\/span>\n      <\/div>\n<p>      <button id=\"amjpt-next\" class=\"amjpt-nav\" type=\"button\" aria-label=\"Nast\u0119pny dzie\u0144\">\u203a<\/button>\n    <\/div>\n<p>    <button id=\"amjpt-today\" class=\"amjpt-link amjpt-todaybtn\" type=\"button\" hidden>Wr\u00f3\u0107 do dzisiaj<\/button><\/p>\n<div id=\"amjpt-times\" class=\"amjpt-times\" aria-live=\"polite\"><\/div>\n<\/p><\/div>\n<p>  <!-- Monatsansicht --><\/p>\n<div id=\"amjpt-monthview\" hidden>\n<div class=\"amjpt-date-row\">\n      <button id=\"amjpt-mprev\" class=\"amjpt-nav\" type=\"button\" aria-label=\"Poprzedni miesi\u0105c\">\u2039<\/button><\/p>\n<div class=\"amjpt-dates\"><span id=\"amjpt-mlabel\" class=\"amjpt-date\"><\/span><\/div>\n<p>      <button id=\"amjpt-mnext\" class=\"amjpt-nav\" type=\"button\" aria-label=\"Nast\u0119pny miesi\u0105c\">\u203a<\/button>\n    <\/div>\n<div class=\"amjpt-tablewrap\">\n<table class=\"amjpt-table\" id=\"amjpt-mtable\"><\/table>\n<\/p><\/div>\n<\/p><\/div>\n<p class=\"amjpt-note\">Czas zamykania Su\u1e25\u016br to 1 godzina i 30 minut przed wschodem s\u0142o\u0144ca i od tego momentu zaczyna si\u0119 czas modlitwy Fad\u017cr.<\/p>\n<\/div>\n<p>  .amjpt{&#8211;amjpt-blue:#16335e;&#8211;amjpt-blue-soft:#eef2f8;&#8211;amjpt-text:#1c2430;&#8211;amjpt-muted:#6b7686;&#8211;amjpt-line:#e3e8ef;<br \/>\n    max-width:560px;margin:0 auto;color:var(&#8211;amjpt-text);font-family:inherit;line-height:1.45;<br \/>\n    border:1px solid var(&#8211;amjpt-line);border-radius:14px;padding:22px 22px 14px;background:#fff;<br \/>\n    box-shadow:0 2px 14px rgba(20,40,80,.06)}<br \/>\n  .amjpt *{box-sizing:border-box}<br \/>\n  .amjpt-city-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}<br \/>\n  .amjpt-pin{color:var(&#8211;amjpt-blue);flex:none}<br \/>\n  .amjpt-city{font-size:1.25rem;font-weight:700}<br \/>\n  .amjpt-link{background:none;border:none;color:var(&#8211;amjpt-blue);text-decoration:underline;cursor:pointer;font-size:.85rem;padding:2px 4px}<br \/>\n  .amjpt-link:hover{opacity:.75}<br \/>\n  .amjpt-search{position:relative;margin-top:10px}<br \/>\n  .amjpt-input{width:100%;padding:10px 12px;font-size:1rem;border:1px solid var(&#8211;amjpt-line);border-radius:8px;background:#fff;color:var(&#8211;amjpt-text)}<br \/>\n  .amjpt-input:focus{outline:2px solid var(&#8211;amjpt-blue);outline-offset:1px}<br \/>\n  .amjpt-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;background:#fff;border:1px solid var(&#8211;amjpt-line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.12);overflow:hidden}<br \/>\n  .amjpt-result{display:block;width:100%;text-align:left;background:none;border:none;padding:10px 12px;cursor:pointer;font-size:.92rem;color:var(&#8211;amjpt-text)}<br \/>\n  .amjpt-result:hover,.amjpt-result:focus{background:var(&#8211;amjpt-blue-soft)}<br \/>\n  .amjpt-result small{color:var(&#8211;amjpt-muted)}<br \/>\n  .amjpt-geobtn{margin-top:6px}<br \/>\n  .amjpt-tabs{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}<br \/>\n  .amjpt-tab{border:1px solid var(&#8211;amjpt-line);background:#fff;color:var(&#8211;amjpt-text);border-radius:99px;padding:6px 16px;font-size:.9rem;cursor:pointer}<br \/>\n  .amjpt-tab-on{background:var(&#8211;amjpt-blue);border-color:var(&#8211;amjpt-blue);color:#fff;font-weight:600}<br \/>\n  .amjpt-printbtn{margin-left:auto;border:1px solid var(&#8211;amjpt-line);background:#fff;color:var(&#8211;amjpt-blue);border-radius:8px;padding:6px 12px;font-size:.85rem;cursor:pointer}<br \/>\n  .amjpt-printbtn:hover{background:var(&#8211;amjpt-blue-soft)}<br \/>\n  .amjpt-date-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:8px}<br \/>\n  .amjpt-dates{text-align:center;flex:1;min-width:0}<br \/>\n  .amjpt-date{display:block;font-weight:600}<br \/>\n  .amjpt-hijri{display:block;font-size:.82rem;color:var(&#8211;amjpt-muted)}<br \/>\n  .amjpt-nav{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(&#8211;amjpt-line);background:#fff;color:var(&#8211;amjpt-blue);font-size:1.3rem;line-height:1;cursor:pointer}<br \/>\n  .amjpt-nav:hover{background:var(&#8211;amjpt-blue-soft)}<br \/>\n  .amjpt-todaybtn{display:block;margin:4px auto 0}<br \/>\n  .amjpt-status{margin-top:12px;padding:10px 12px;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;font-size:.88rem}<br \/>\n  .amjpt-times{margin-top:14px;border-top:1px solid var(&#8211;amjpt-line)}<br \/>\n  .amjpt-row{display:flex;align-items:baseline;justify-content:space-between;padding:11px 6px;border-bottom:1px solid var(&#8211;amjpt-line)}<br \/>\n  .amjpt-row .amjpt-label{font-size:.97rem}<br \/>\n  .amjpt-row .amjpt-time{font-size:1.08rem;font-weight:700;font-variant-numeric:tabular-nums}<br \/>\n  .amjpt-row.amjpt-nextp{background:var(&#8211;amjpt-blue-soft);border-radius:8px;border-bottom-color:transparent;padding-left:10px;padding-right:10px}<br \/>\n  .amjpt-badge{display:inline-block;margin-left:8px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(&#8211;amjpt-blue);border-radius:99px;padding:2px 8px;vertical-align:middle}<br \/>\n  .amjpt-count{display:block;font-size:.78rem;color:var(&#8211;amjpt-muted);font-weight:400}<br \/>\n  .amjpt-tablewrap{margin-top:10px;overflow-x:auto}<br \/>\n  .amjpt-table{width:100%;border-collapse:collapse;font-size:.82rem;font-variant-numeric:tabular-nums}<br \/>\n  .amjpt-table th{background:var(&#8211;amjpt-blue);color:#fff;padding:7px 4px;font-weight:600;text-align:center;white-space:nowrap}<br \/>\n  .amjpt-table td{padding:5px 4px;text-align:center;border-bottom:1px solid var(&#8211;amjpt-line);white-space:nowrap}<br \/>\n  .amjpt-table td:first-child{text-align:left;padding-left:8px}<br \/>\n  .amjpt-table tr.amjpt-fri td{background:#f6f8fc}<br \/>\n  .amjpt-table tr.amjpt-todayrow td{background:var(&#8211;amjpt-blue-soft);font-weight:700}<br \/>\n  .amjpt-note{margin:12px 2px 2px;font-size:.78rem;color:var(&#8211;amjpt-muted)}<br \/>\n  @media (max-width:480px){.amjpt{padding:16px 12px 10px;border-radius:12px}.amjpt-city{font-size:1.1rem}.amjpt-table{font-size:.72rem}}<\/p>\n<p>\/* ==============================================================<br \/>\n   EINSTELLUNGEN \u2013 hier kalibrieren, bis es alislam.org\/adhan entspricht<br \/>\n   ============================================================== *\/<br \/>\nconst CONFIG = {<br \/>\n  fajrOffsetMinutes: 90,            \/\/ Fad\u017cr\/Su\u1e25\u016br: fix 1 h 30 min przed wschodem s\u0142o\u0144ca<br \/>\n  ishaAngle: 17,                    \/\/ Isza-Winkel: 17 (MWL). Alternativen: 15 \/ 18<br \/>\n  highLatitudeRule: 'seventhofthenight&#8217;, \/\/ WICHTIG f\u00fcr PL-Sommer: 'seventhofthenight&#8217; (fr\u00fcher) | 'middleofthenight&#8217; (sp\u00e4ter) | 'twilightangle&#8217;<br \/>\n  madhab: 'shafi&#8217;,                  \/\/ Asar: 'shafi&#8217; (1\u00d7 Schatten) oder 'hanafi&#8217; (2\u00d7 Schatten)<br \/>\n  adjustments: { dhuhr: 0, asr: 0, maghrib: 0, isha: 0 }, \/\/ Minuten-Feinjustierung pro Gebet<br \/>\n  fallbackCity: { name: 'Warszawa&#8217;, country: 'Polska&#8217;, lat: 52.2297, lon: 21.0122 }<br \/>\n};<br \/>\n\/* ============================================================== *\/<br \/>\nimport * as adhan from 'https:\/\/cdn.jsdelivr.net\/npm\/adhan@4.4.3\/+esm&#8217;;<br \/>\nimport tzlookup from 'https:\/\/cdn.jsdelivr.net\/npm\/tz-lookup@6.1.25\/+esm&#8217;;<br \/>\nconst $ = id =&gt; document.getElementById(id);<br \/>\nconst el = {<br \/>\n  city: $(&#8217;amjpt-city&#8217;), change: $(&#8217;amjpt-change&#8217;), search: $(&#8217;amjpt-search&#8217;),<br \/>\n  input: $(&#8217;amjpt-input&#8217;), results: $(&#8217;amjpt-results&#8217;), geobtn: $(&#8217;amjpt-geobtn&#8217;),<br \/>\n  date: $(&#8217;amjpt-date&#8217;), hijri: $(&#8217;amjpt-hijri&#8217;), prev: $(&#8217;amjpt-prev&#8217;),<br \/>\n  next: $(&#8217;amjpt-next&#8217;), today: $(&#8217;amjpt-today&#8217;), status: $(&#8217;amjpt-status&#8217;),<br \/>\n  times: $(&#8217;amjpt-times&#8217;), tabDay: $(&#8217;amjpt-tab-day&#8217;), tabMonth: $(&#8217;amjpt-tab-month&#8217;),<br \/>\n  print: $(&#8217;amjpt-print&#8217;), dayview: $(&#8217;amjpt-dayview&#8217;), monthview: $(&#8217;amjpt-monthview&#8217;),<br \/>\n  mprev: $(&#8217;amjpt-mprev&#8217;), mnext: $(&#8217;amjpt-mnext&#8217;), mlabel: $(&#8217;amjpt-mlabel&#8217;), mtable: $(&#8217;amjpt-mtable&#8217;)<br \/>\n};<br \/>\nlet state = { lat: null, lon: null, tz: null, cityLabel: &#8221;, dayOffset: 0, view: 'day&#8217;, mYear: null, mMonth: null };<br \/>\nlet tickTimer = null;<br \/>\nconst COLS = [<br \/>\n  { key:&#8217;fajr&#8217;,    label:&#8217;Fad\u017cr \/ Su\u1e25\u016br&#8217; },<br \/>\n  { key:&#8217;sunrise&#8217;, label:&#8217;Wsch. S\u0142.&#8217; },<br \/>\n  { key:&#8217;dhuhr&#8217;,   label:&#8217;Zuhr&#8217; },<br \/>\n  { key:&#8217;asr&#8217;,     label:&#8217;Asar&#8217; },<br \/>\n  { key:&#8217;maghrib&#8217;, label:&#8217;Maghrib \/ If\u1e6d\u0101r&#8217; },<br \/>\n  { key:&#8217;isha&#8217;,    label:&#8217;Isza&#8217; }<br \/>\n];<br \/>\n\/* &#8212;&#8212;&#8212;- Hilfsfunktionen &#8212;&#8212;&#8212;- *\/<br \/>\nfunction showStatus(msg){ el.status.textContent = msg; el.status.hidden = false; }<br \/>\nfunction hideStatus(){ el.status.hidden = true; }<br \/>\nfunction cityLocalYMD(offsetDays){<br \/>\n  const d = new Date(Date.now() + offsetDays * 86400000);<br \/>\n  const p = new Intl.DateTimeFormat(&#8217;en-CA&#8217;, { timeZone: state.tz, year:&#8217;numeric&#8217;, month:&#8217;2-digit&#8217;, day:&#8217;2-digit&#8217; })<br \/>\n    .formatToParts(d).reduce((a,x)=&gt;(a[x.type]=x.value,a),{});<br \/>\n  return { y:+p.year, m:+p.month, d:+p.day };<br \/>\n}<br \/>\nfunction fmtTime(date){<br \/>\n  \/* Intl + IANA-Zeitzone: Sommer-\/Winterzeit (DST) wird pro Datum automatisch korrekt umgerechnet *\/<br \/>\n  return new Intl.DateTimeFormat(&#8217;pl-PL&#8217;, { hour:&#8217;2-digit&#8217;, minute:&#8217;2-digit&#8217;, hourCycle:&#8217;h23&#8242;, timeZone: state.tz }).format(date);<br \/>\n}<br \/>\nfunction calcParams(){<br \/>\n  const params = adhan.CalculationMethod.MuslimWorldLeague();<br \/>\n  params.ishaAngle = CONFIG.ishaAngle;<br \/>\n  params.madhab = CONFIG.madhab === 'hanafi&#8217; ? adhan.Madhab.Hanafi : adhan.Madhab.Shafi;<br \/>\n  params.highLatitudeRule =<br \/>\n    CONFIG.highLatitudeRule === 'middleofthenight&#8217; ? adhan.HighLatitudeRule.MiddleOfTheNight :<br \/>\n    CONFIG.highLatitudeRule === 'twilightangle&#8217;    ? adhan.HighLatitudeRule.TwilightAngle :<br \/>\n    adhan.HighLatitudeRule.SeventhOfTheNight;<br \/>\n  params.adjustments = { fajr:0, sunrise:0, &#8230;CONFIG.adjustments };<br \/>\n  return params;<br \/>\n}<br \/>\nfunction computeTimes(y, m, d){<br \/>\n  const coords = new adhan.Coordinates(state.lat, state.lon);<br \/>\n  const pt = new adhan.PrayerTimes(coords, new Date(y, m &#8211; 1, d, 12), calcParams());<br \/>\n  const fajr = new Date(pt.sunrise.getTime() &#8211; CONFIG.fajrOffsetMinutes * 60000);<br \/>\n  return { fajr, sunrise: pt.sunrise, dhuhr: pt.dhuhr, asr: pt.asr, maghrib: pt.maghrib, isha: pt.isha };<br \/>\n}<br \/>\nfunction countdownText(ms){<br \/>\n  const totalMin = Math.max(0, Math.round(ms \/ 60000));<br \/>\n  const h = Math.floor(totalMin \/ 60), m = totalMin % 60;<br \/>\n  return h === 0 ? `za ${m} min` : `za ${h} godz. ${m} min`;<br \/>\n}<br \/>\nfunction monthName(y, m){<br \/>\n  return new Intl.DateTimeFormat(&#8217;pl-PL&#8217;, { month:&#8217;long&#8217;, year:&#8217;numeric&#8217; }).format(new Date(y, m &#8211; 1, 15));<br \/>\n}<br \/>\n\/* &#8212;&#8212;&#8212;- Tagesansicht &#8212;&#8212;&#8212;- *\/<br \/>\nfunction renderDay(){<br \/>\n  const ymd = cityLocalYMD(state.dayOffset);<br \/>\n  const t = computeTimes(ymd.y, ymd.m, ymd.d);<br \/>\n  const shown = new Date(ymd.y, ymd.m &#8211; 1, ymd.d, 12);<br \/>\n  el.date.textContent = new Intl.DateTimeFormat(&#8217;pl-PL&#8217;, { weekday:&#8217;long&#8217;, day:&#8217;numeric&#8217;, month:&#8217;long&#8217;, year:&#8217;numeric&#8217; }).format(shown);<br \/>\n  try {<br \/>\n    el.hijri.textContent = new Intl.DateTimeFormat(&#8217;pl-PL-u-ca-islamic-umalqura&#8217;, { day:&#8217;numeric&#8217;, month:&#8217;long&#8217;, year:&#8217;numeric&#8217; }).format(shown) + &#8217; AH&#8217;;<br \/>\n  } catch(e){ el.hijri.textContent = &#8221;; }<br \/>\n  el.today.hidden = state.dayOffset === 0;<br \/>\n  const now = Date.now();<br \/>\n  let nextIdx = -1;<br \/>\n  if (state.dayOffset === 0){<br \/>\n    nextIdx = COLS.findIndex(c =&gt; c.key !== 'sunrise&#8217; &amp;&amp; t[c.key].getTime() &gt; now);<br \/>\n  }<br \/>\n  el.times.innerHTML = &#8221;;<br \/>\n  COLS.forEach((c, i) =&gt; {<br \/>\n    const row = document.createElement(&#8217;div&#8217;);<br \/>\n    row.className = 'amjpt-row&#8217; + (i === nextIdx ? &#8217; amjpt-nextp&#8217; : &#8221;);<br \/>\n    const lab = document.createElement(&#8217;span&#8217;);<br \/>\n    lab.className = 'amjpt-label&#8217;;<br \/>\n    lab.textContent = c.key === 'sunrise&#8217; ? 'Wsch\u00f3d s\u0142o\u0144ca&#8217; : c.label;<br \/>\n    if (i === nextIdx){<br \/>\n      const b = document.createElement(&#8217;span&#8217;);<br \/>\n      b.className = 'amjpt-badge&#8217;; b.textContent = 'nast\u0119pna&#8217;;<br \/>\n      lab.appendChild(b);<br \/>\n      const cd = document.createElement(&#8217;span&#8217;);<br \/>\n      cd.className = 'amjpt-count&#8217;;<br \/>\n      cd.textContent = countdownText(t[c.key].getTime() &#8211; now);<br \/>\n      lab.appendChild(cd);<br \/>\n    }<br \/>\n    const tm = document.createElement(&#8217;span&#8217;);<br \/>\n    tm.className = 'amjpt-time&#8217;; tm.textContent = fmtTime(t[c.key]);<br \/>\n    row.append(lab, tm);<br \/>\n    el.times.appendChild(row);<br \/>\n  });<br \/>\n  clearInterval(tickTimer);<br \/>\n  if (nextIdx &gt;= 0) tickTimer = setInterval(renderDay, 30000);<br \/>\n}<br \/>\n\/* &#8212;&#8212;&#8212;- Monatsansicht &#8212;&#8212;&#8212;- *\/<br \/>\nfunction buildMonthRows(y, m){<br \/>\n  const daysInMonth = new Date(y, m, 0).getDate();<br \/>\n  const todayYmd = cityLocalYMD(0);<br \/>\n  const rows = [];<br \/>\n  for (let d = 1; d  fmtTime(t[c.key]))<br \/>\n    });<br \/>\n  }<br \/>\n  return rows;<br \/>\n}<br \/>\nfunction renderMonth(){<br \/>\n  el.mlabel.textContent = monthName(state.mYear, state.mMonth);<br \/>\n  const rows = buildMonthRows(state.mYear, state.mMonth);<br \/>\n  let html = &#8217;<\/p>\n<thead>\n<tr>\n<th>Dzie\u0144<\/th>\n<p>&#8217; + COLS.map(c=&gt;`<\/p>\n<th>${c.label}<\/th>\n<p>`).join(&#8221;) + &#8217;<\/tr>\n<\/thead>\n<tbody>&#8217;;<br \/>\n  rows.forEach(r =&gt; {<br \/>\n    const cls = (r.isToday ? 'amjpt-todayrow &#8217; : &#8221;) + (r.isFri ? 'amjpt-fri&#8217; : &#8221;);<br \/>\n    html += `<\/p>\n<tr class=\"${cls.trim()}\">\n<td>${r.d} ${r.wd}<\/td>\n<p>` + r.times.map(x=&gt;`<\/p>\n<td>${x}<\/td>\n<p>`).join(&#8221;) + &#8217;<\/tr>\n<p>&#8217;;<br \/>\n  });<br \/>\n  el.mtable.innerHTML = html + &#8217;<\/tbody>\n<p>&#8217;;<br \/>\n}<br \/>\n\/* &#8212;&#8212;&#8212;- A4-Druck &#8212;&#8212;&#8212;- *\/<br \/>\nfunction printMonth(){<br \/>\n  const rows = buildMonthRows(state.mYear, state.mMonth);<br \/>\n  const body = rows.map(r =&gt;<br \/>\n    `<\/p>\n<tr class=\"${r.isFri ? &apos;fri&apos; : &apos;&apos;}\">\n<td class=\"day\">${r.d} ${r.wd}<\/td>\n<p>` + r.times.map(x=&gt;`<\/p>\n<td>${x}<\/td>\n<p>`).join(&#8221;) + &#8217;<\/tr>\n<p>&#8217;<br \/>\n  ).join(&#8221;);<br \/>\n  const html = `<br \/>\n<title>Czas Modlitwy \u2013 ${state.cityLabel} \u2013 ${monthName(state.mYear, state.mMonth)}<\/title><\/p>\n<p>@page{size:A4 portrait;margin:12mm}<br \/>\nbody{font-family:Arial,Helvetica,sans-serif;color:#1c2430;margin:0}<br \/>\nh1{font-size:16pt;margin:0 0 2mm;color:#16335e}<br \/>\nh2{font-size:11pt;font-weight:normal;margin:0 0 5mm;color:#444}<br \/>\ntable{width:100%;border-collapse:collapse;font-size:9.5pt;font-variant-numeric:tabular-nums}<br \/>\nth{background:#16335e;color:#fff;padding:4.5pt 3pt;font-size:9pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}<br \/>\ntd{padding:3.2pt 3pt;text-align:center;border-bottom:.5pt solid #c9d2de}<br \/>\ntd.day{text-align:left;padding-left:6pt;white-space:nowrap}<br \/>\ntr.fri td{background:#eef2f8;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:bold}<br \/>\np.note{font-size:8pt;color:#555;margin-top:4mm}<br \/>\np.src{font-size:7.5pt;color:#888;margin-top:1mm}<\/p>\n<h1>Czas Modlitwy \u2013 ${state.cityLabel}<\/h1>\n<h2>${monthName(state.mYear, state.mMonth)}<\/h2>\n<table>\n<thead>\n<tr>\n<th>Dzie\u0144<\/th>\n<p>${COLS.map(c=&gt;`<\/p>\n<th>${c.label}<\/th>\n<p>`).join(&#8221;)}<\/tr>\n<\/thead>\n<tbody>${body}<\/tbody>\n<\/table>\n<p class=\"note\">Czas zamykania Su\u1e25\u016br to 1 godzina i 30 minut przed wschodem s\u0142o\u0144ca i od tego momentu zaczyna si\u0119 czas modlitwy Fad\u017cr.<\/p>\n<p class=\"src\">Stowarzyszenie Muzu\u0142ma\u0144skie Ahmadiyya Polska \u00b7 www.ahmadiyya-islam.org\/pl<\/p>\n<p>`;<br \/>\n  const w = window.open(&#8221;, '_blank&#8217;);<br \/>\n  if (!w){ showStatus(&#8217;Przegl\u0105darka zablokowa\u0142a okno drukowania \u2013 zezw\u00f3l na wyskakuj\u0105ce okna.&#8217;); return; }<br \/>\n  w.document.write(html);<br \/>\n  w.document.close();<br \/>\n  w.onload = () =&gt; { w.focus(); w.print(); };<br \/>\n}<br \/>\n\/* &#8212;&#8212;&#8212;- Ansicht wechseln \/ Standort &#8212;&#8212;&#8212;- *\/<br \/>\nfunction setView(v){<br \/>\n  state.view = v;<br \/>\n  el.tabDay.classList.toggle(&#8217;amjpt-tab-on&#8217;, v === 'day&#8217;);<br \/>\n  el.tabMonth.classList.toggle(&#8217;amjpt-tab-on&#8217;, v === 'month&#8217;);<br \/>\n  el.dayview.hidden = v !== 'day&#8217;;<br \/>\n  el.monthview.hidden = v !== 'month&#8217;;<br \/>\n  el.print.hidden = v !== 'month&#8217;;<br \/>\n  if (state.lat == null) return;<br \/>\n  if (v === 'month&#8217;){<br \/>\n    if (state.mYear == null){ const t = cityLocalYMD(0); state.mYear = t.y; state.mMonth = t.m; }<br \/>\n    renderMonth();<br \/>\n  } else { renderDay(); }<br \/>\n}<br \/>\nfunction setLocation(lat, lon, label){<br \/>\n  state.lat = lat; state.lon = lon; state.cityLabel = label;<br \/>\n  state.dayOffset = 0; state.mYear = null; state.mMonth = null;<br \/>\n  try { state.tz = tzlookup(lat, lon); }<br \/>\n  catch(e){ state.tz = Intl.DateTimeFormat().resolvedOptions().timeZone; }<br \/>\n  el.city.textContent = label;<br \/>\n  el.search.hidden = true;<br \/>\n  hideStatus();<br \/>\n  setView(state.view);<br \/>\n}<br \/>\nasync function reverseGeocode(lat, lon){<br \/>\n  try {<br \/>\n    const r = await fetch(`https:\/\/api.bigdatacloud.net\/data\/reverse-geocode-client?latitude=${lat}&amp;longitude=${lon}&amp;localityLanguage=pl`);<br \/>\n    const j = await r.json();<br \/>\n    const city = j.city || j.locality || j.principalSubdivision || &#8221;;<br \/>\n    return city ? `${city}${j.countryName ? &#8217;, &#8217; + j.countryName : &#8221;}` : null;<br \/>\n  } catch(e){ return null; }<br \/>\n}<br \/>\nfunction useFallback(msg){<br \/>\n  const f = CONFIG.fallbackCity;<br \/>\n  setLocation(f.lat, f.lon, `${f.name}, ${f.country}`);<br \/>\n  if (msg) showStatus(msg);<br \/>\n}<br \/>\nfunction requestGeolocation(){<br \/>\n  if (!(&#8217;geolocation&#8217; in navigator)){<br \/>\n    useFallback(&#8217;Twoja przegl\u0105darka nie obs\u0142uguje lokalizacji \u2013 pokazujemy czasy dla Warszawy. Mo\u017cesz zmieni\u0107 miasto powy\u017cej.&#8217;);<br \/>\n    return;<br \/>\n  }<br \/>\n  el.city.textContent = 'Ustalanie lokalizacji\u2026&#8217;;<br \/>\n  navigator.geolocation.getCurrentPosition(async pos =&gt; {<br \/>\n    const { latitude:lat, longitude:lon } = pos.coords;<br \/>\n    const label = await reverseGeocode(lat, lon) || 'Twoja lokalizacja&#8217;;<br \/>\n    setLocation(lat, lon, label);<br \/>\n  }, () =&gt; {<br \/>\n    useFallback(&#8217;Nie uda\u0142o si\u0119 ustali\u0107 lokalizacji \u2013 pokazujemy czasy dla Warszawy. Kliknij \u201eZmie\u0144 miasto\u201d, aby wybra\u0107 inne miejsce.&#8217;);<br \/>\n  }, { enableHighAccuracy:false, timeout:10000, maximumAge:600000 });<br \/>\n}<br \/>\n\/* &#8212;&#8212;&#8212;- Stadtsuche (Nominatim \/ OpenStreetMap) &#8212;&#8212;&#8212;- *\/<br \/>\nlet searchTimer = null;<br \/>\nasync function doSearch(q){<br \/>\n  if (q.trim().length &lt; 2){ el.results.hidden = true; return; }<br \/>\n  try {<br \/>\n    const r = await fetch(`https:\/\/nominatim.openstreetmap.org\/search?format=json&amp;limit=6&amp;accept-language=pl&amp;q=${encodeURIComponent(q)}`);<br \/>\n    const arr = await r.json();<br \/>\n    el.results.innerHTML = &#039;&#039;;<br \/>\n    if (!arr.length){<br \/>\n      el.results.innerHTML = &#039;<\/p>\n<div class=\"amjpt-result\"><small>Brak wynik\u00f3w<\/small><\/div>\n<p>&#8217;;<br \/>\n      el.results.hidden = false; return;<br \/>\n    }<br \/>\n    arr.forEach(item =&gt; {<br \/>\n      const parts = item.display_name.split(&#8217;,&#8217;).map(s=&gt;s.trim());<br \/>\n      const name = parts[0];<br \/>\n      const rest = parts.slice(1, 3).join(&#8217;, &#8217;);<br \/>\n      const btn = document.createElement(&#8217;button&#8217;);<br \/>\n      btn.type = 'button&#8217;; btn.className = 'amjpt-result&#8217;;<br \/>\n      btn.innerHTML = `${name} <small>${rest}<\/small>`;<br \/>\n      btn.addEventListener(&#8217;click&#8217;, () =&gt; {<br \/>\n        const country = parts[parts.length &#8211; 1];<br \/>\n        setLocation(parseFloat(item.lat), parseFloat(item.lon), name === country ? name : `${name}, ${country}`);<br \/>\n        el.input.value = &#8221;; el.results.hidden = true;<br \/>\n      });<br \/>\n      el.results.appendChild(btn);<br \/>\n    });<br \/>\n    el.results.hidden = false;<br \/>\n  } catch(e){ \/* Netzwerkfehler still ignorieren *\/ }<br \/>\n}<br \/>\n\/* &#8212;&#8212;&#8212;- Events &#8212;&#8212;&#8212;- *\/<br \/>\nel.change.addEventListener(&#8217;click&#8217;, () =&gt; { el.search.hidden = !el.search.hidden; if (!el.search.hidden) el.input.focus(); });<br \/>\nel.input.addEventListener(&#8217;input&#8217;, () =&gt; { clearTimeout(searchTimer); <\/p>\n","protected":false},"excerpt":{"rendered":"<p>KSESTEST KSESTEST-ENDE Ustalanie lokalizacji\u2026 Zmie\u0144 miasto U\u017cyj mojej lokalizacji Dzi\u015b Ca\u0142y miesi\u0105c \ud83d\udda8 Drukuj (A4) \u2039 \u203a Wr\u00f3\u0107 do dzisiaj \u2039 \u203a Czas zamykania Su\u1e25\u016br to 1 godzina i 30 minut przed wschodem s\u0142o\u0144ca i od tego momentu zaczyna si\u0119 czas modlitwy Fad\u017cr. .amjpt{&#8211;amjpt-blue:#16335e;&#8211;amjpt-blue-soft:#eef2f8;&#8211;amjpt-text:#1c2430;&#8211;amjpt-muted:#6b7686;&#8211;amjpt-line:#e3e8ef; max-width:560px;margin:0 auto;color:var(&#8211;amjpt-text);font-family:inherit;line-height:1.45; border:1px solid var(&#8211;amjpt-line);border-radius:14px;padding:22px 22px 14px;background:#fff; box-shadow:0 2px 14px rgba(20,40,80,.06)}<\/p>\n","protected":false},"author":85,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"pages\/template-namazplan-new.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-222","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.1 (Yoast SEO v27.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Czas Modlitw - Czas Salah dla ca\u0142ego \u015bwiata - Harmonogram miesi\u0119czny<\/title>\n<meta name=\"description\" content=\"Czas Modlitw | Pory Modlitw dla ca\u0142ego \u015bwiata | Wydrukuj Harmonogram Salah | nauczy\u0107 si\u0119, jak i kiedy si\u0119 modli\u0107 | Islam | Kalendarz Ramadan\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Czas Modlitw\" \/>\n<meta property=\"og:description\" content=\"Czas Modlitw | Pory Modlitw dla ca\u0142ego \u015bwiata | Wydrukuj Harmonogram Salah | nauczy\u0107 si\u0119, jak i kiedy si\u0119 modli\u0107 | Islam | Kalendarz Ramadan\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/\" \/>\n<meta property=\"og:site_name\" content=\"Stowarzyszenie Muzu\u0142ma\u0144skie Ahmadiyya\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T14:54:56+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/czas-modlitwy-czas-salah-dla-calego-swiata\\\/\",\"url\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/czas-modlitwy-czas-salah-dla-calego-swiata\\\/\",\"name\":\"Czas Modlitw - Czas Salah dla ca\u0142ego \u015bwiata - Harmonogram miesi\u0119czny\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/#website\"},\"datePublished\":\"2021-02-06T12:32:48+00:00\",\"dateModified\":\"2026-06-11T14:54:56+00:00\",\"description\":\"Czas Modlitw | Pory Modlitw dla ca\u0142ego \u015bwiata | Wydrukuj Harmonogram Salah | nauczy\u0107 si\u0119, jak i kiedy si\u0119 modli\u0107 | Islam | Kalendarz Ramadan\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/czas-modlitwy-czas-salah-dla-calego-swiata\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/czas-modlitwy-czas-salah-dla-calego-swiata\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/czas-modlitwy-czas-salah-dla-calego-swiata\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Czas Modlitw\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/#website\",\"url\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/\",\"name\":\"Stowarzyszenie Muzu\u0142ma\u0144skie Ahmadiyya\",\"description\":\"Polska\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ahmadiyya-islam.org\\\/pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Czas Modlitw - Czas Salah dla ca\u0142ego \u015bwiata - Harmonogram miesi\u0119czny","description":"Czas Modlitw | Pory Modlitw dla ca\u0142ego \u015bwiata | Wydrukuj Harmonogram Salah | nauczy\u0107 si\u0119, jak i kiedy si\u0119 modli\u0107 | Islam | Kalendarz Ramadan","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:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/","og_locale":"pl_PL","og_type":"article","og_title":"Czas Modlitw","og_description":"Czas Modlitw | Pory Modlitw dla ca\u0142ego \u015bwiata | Wydrukuj Harmonogram Salah | nauczy\u0107 si\u0119, jak i kiedy si\u0119 modli\u0107 | Islam | Kalendarz Ramadan","og_url":"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/","og_site_name":"Stowarzyszenie Muzu\u0142ma\u0144skie Ahmadiyya","article_modified_time":"2026-06-11T14:54:56+00:00","twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"8 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/","url":"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/","name":"Czas Modlitw - Czas Salah dla ca\u0142ego \u015bwiata - Harmonogram miesi\u0119czny","isPartOf":{"@id":"https:\/\/www.ahmadiyya-islam.org\/pl\/#website"},"datePublished":"2021-02-06T12:32:48+00:00","dateModified":"2026-06-11T14:54:56+00:00","description":"Czas Modlitw | Pory Modlitw dla ca\u0142ego \u015bwiata | Wydrukuj Harmonogram Salah | nauczy\u0107 si\u0119, jak i kiedy si\u0119 modli\u0107 | Islam | Kalendarz Ramadan","breadcrumb":{"@id":"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ahmadiyya-islam.org\/pl\/czas-modlitwy-czas-salah-dla-calego-swiata\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ahmadiyya-islam.org\/pl\/"},{"@type":"ListItem","position":2,"name":"Czas Modlitw"}]},{"@type":"WebSite","@id":"https:\/\/www.ahmadiyya-islam.org\/pl\/#website","url":"https:\/\/www.ahmadiyya-islam.org\/pl\/","name":"Stowarzyszenie Muzu\u0142ma\u0144skie Ahmadiyya","description":"Polska","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ahmadiyya-islam.org\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"}]}},"_links":{"self":[{"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/pages\/222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":2,"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/pages\/222\/revisions"}],"predecessor-version":[{"id":3299,"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/pages\/222\/revisions\/3299"}],"wp:attachment":[{"href":"https:\/\/www.ahmadiyya-islam.org\/pl\/wp-json\/wp\/v2\/media?parent=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}