Danksagungen
In diesem Blog erkläre ich Konzepte und Techniken, die sowohl die Berechnung der sogenannten „jüdischen Zeiten“ (zmanim) betreffen als auch die erforderlichen Techniken zum Einsatz der PHP Zmanim Bibliothek – einer Funktionsbibliothek, die es Ihnen ermöglicht, jüdische Zeiten einfach zu berechnen.
Die PHPZmanim Bibliothek wird von Zachary Weixelbaum gepflegt. Wie bei vielen Dingen in der heutigen Technik basiert PHP Zmanim auf der grundlegenden Kosher Java Bibliothek von Eliyahu Hershfeld. Ich bin Zachary und Eliyahu eine große Dankbarkeit schuldig — nicht nur für die Arbeit, die sie in die Entwicklung dieser Bibliotheken gesteckt haben, sondern auch für die Unterstützung, die sie mir gegeben haben, als ich mich sowohl auf die technischen als auch auf die jüdischen religiösen Richtlinien (halacha) eingestellt habe, um sie zu verwenden.
Einführung
„Wann finden diese Woche die Nachmittagsgebete (Mincha) statt?“ ist eine hintergründig komplexe Frage. Sie ist trügerisch, weil „Nachmittagsgebete“ scheinbar selbsterklärend sind, aber (wie bei so vielen Dingen, die sich auf jüdische religiöse Regeln (halacha) beziehen), ist eine große Menge an Hintergrund, Kommentar und Spezifität erforderlich.
HINWEIS: Wenn Sie bereits mit jüdischen Zeitkonzepten (zmanim) vertraut sind, können Sie gern direkt zum Abschnitt „Installation der PHP Zmanim“ springen. Ich werde mich weder beleidigt fühlen noch es Ihnen übel nehmen.
Es ist schwierig, die Bedeutung genauerer Zeitberechnungen im jüdischen religiösen Tag, der Woche und im Leben zu verstehen. Sie spielen eine Rolle bei allem, von dem Zeitpunkt, zu dem ein Fasten beginnt und endet, bis zu dem Moment, an dem es zu spät (oder zu früh) ist, bestimmte Gebete zu sprechen, bis hin zum Augenblick, in dem das bloße Besitzen (geschweige denn das Essen) von Brot verboten ist.
Um es anders auszudrücken, werde ich ein Zitat von Rabbi Abraham Joshua Heschel aus seinem Buch „Der Sabbat“ teilen.
Die Bedeutung des Sabbats besteht darin, die Zeit statt des Raums zu feiern. Sechs Tage der Woche leben wir unter der Tyrannei der Dinge des Raums; am Sabbat versuchen wir, uns der Heiligkeit in der Zeit zuzuwenden.
Rabbi Abraham Joshua Heschel, “The Sabbath”
Trotz dieser Erklärung könnten einige Leser immer noch fragen: „Warum ist das so wichtig? Sollen Sie mir sagen, dass Gott es Ihnen ankreiden wird, wenn Sie 5 Minuten daneben liegen?“
Es ist eine berechtigte Frage und lohnt eine Diskussion, da sonst die Notwendigkeit sowie die Auswirkungen dieses Blogs (und der darin beschriebenen Techniken und Technologien) vermindert werden.
Nein, natürlich interessiert es Gott nicht. Genau wie mein Lauftrainer nicht „interessiert“ ist, ob ich mich vor dem Laufen aufwärme, meine Off-Season-Workouts mache oder genug Wasser trinke. Sehen wir es ein: Egal wie hart ich trainiere, wird mein Trainer nicht gesünder. Mein Trainer hingegen – der sich für mich interessiert, und zwar jenseits meiner Leistung bei der nächsten Veranstaltung, möchte, dass ICH mich kümmere. Sie möchten, dass ich mich voll und ganz engagiere, nur weil sie wissen, dass meine Erfahrung dadurch erfüllender wird.
Auf die gleiche Weise „kümmert“ sich Gott nicht. Aber wir wissen (durch die Texte des Torah und Talmud), dass Gott möchte, dass WIR uns kümmern. Und so haben jüdische Gelehrte im Laufe der Jahrtausende versucht – unter Verwendung der im Text dargelegten Beweise – einfache und vereinfachende Antworten abzulehnen und tiefer zu graben, um die Details zu entdecken.
Zurück zum eigentlichen Thema: „Wann sind die Nachmittagsgebete?“ Um das zu verstehen, müssen wir zunächst verstehen, was den „Tag“ (im Gegensatz zum „Nacht“) definiert; wie man die Abgrenzung versteht, die „Morgen“ von „Nachmittag“ trennt; wie man den Tag effektiv in Teile unterteilt; und vieles mehr.
Obwohl dieser Blog einige dieser Konzepte und Begriffe bei Bedarf einführen wird, sollte er in keiner Weise als abschließend angesehen werden.
Es ist keine Überraschung, dass Computer schnell gearbeitet haben, um diese Zeiten zu berechnen, und jetzt gibt es eine Vielzahl von Websites und Anwendungen, die bereit sind, diese Arbeit für uns zu erledigen. Auch für diejenigen, die ihre eigenen Programme erstellen möchten, um diese Berechnungen durchzuführen, gibt es zeitsparende Lösungen in Form von Code-Bibliotheken wie KosherJava und ihren vielen Ports, einschließlich PHP, Swift, .Net, JavaScript, Python und vielen anderen.
Dennoch ist es wichtig, die Theorie hinter den Tools zu verstehen. Wer ein Website oder eine App erstellen möchte, muss sicherstellen, dass sein Programm nicht versehentlich falsche Zeiten angibt. Wie bereits erwähnt, wird niemand „zur Hölle gehen“ (sozusagen) für das Gebet zu einer falschen Zeit, es gibt jedoch einen strikten Befehl:
וְלִפְנֵ֣י עִוֵּ֔ר לֹ֥א תִתֵּ֖ן מִכְשֹׁ֑ל וְיָרֵ֥אתָ מֵּאֱלֹהֶ֖יךָ
“lifnei iver lo titein michshol v’yareita mei-elohecha”
“Leg nicht ein Stolperstein vor den Blinden”(Leviticus 19:14)
Es ist eine Sache, wenn jemand etwas versehentlich falsch macht. Es ist eine ganz andere Sache, schlechte Informationen bereitzustellen, die jemanden (oder noch schlimmer, viele Leute) dazu verleiten, einen Fehler zu machen, da sie der Meinung sind, die von Ihrer App erhaltenen Informationen seien genau und vertrauenswürdig.
Die Grundzeiten
In diesem Zusammenhang beginnen wir mit der Kenntnis der relativ unkomplizierten Zeiten, die am wenigsten von Variationen in der jüdischen Tradition betroffen sind:
- Sonnenaufgang (Netz Hachma) ist der gute alte nautische Sonnenaufgang – der Moment, an dem der obere Rand der Sonnenscheibe den Horizont berührt.
- Sonnenuntergang (Shkia) ist die andere Seite des täglichen Münzwurfs – der Moment, an dem der obere Rand der Sonne gerade unter den Horizont sinkt.
- A “seasonal hour” (sha’ah) refers to the even division of daylight, the time between sunrise and sunset. There are always 12 seasonal hours, but they may be longer or shorter than a regular (on your clock) hour because the amount of daylight fluctuates with the season.
- Beachten Sie, dass einige Traditionen eine Sha’ah als 12 Teile der Zeit von der Dämmerung (alot hashachar oder einfach „alot“, wenn Licht über dem Horizont sichtbar ist, aber bevor der Sonnenaufgang selbst anbricht) bis zur Nacht (tzeis hakochavim oder einfach „tzeis“, wenn kein Licht über dem Horizont sichtbar ist, nach Sonnenuntergang) berechnen. Wir werden später im Blog auf beide, Dämmerung (alot) und Nacht (tzeit), eingehen.
- Saisonale Minuten (sha’ot zmaniyot) sind 1/60 einer saisonalen Stunde und können, genau wie eine saisonale Stunde, größer oder kleiner sein als eine Minute auf Ihrer Uhr.
Wie Sie sehen können, bilden Sonnenaufgang und Sonnenuntergang das fundamentale Herz aller anderen Zeitberechnungen, und eine große Anzahl wichtiger jüdischer Zeiten während des Tages werden direkt daraus abgeleitet. Zum Beispiel finden Sie in einigen Traditionen:
- Schabbat beginnt am Freitagabend, 18 Minuten vor Sonnenuntergang (shkia)
- Schabbat endet am Samstagabend 45 (oder 50, oder 72) Minuten nach Sonnenuntergang (shkia)
- …und so weiter.
Berechnungen, bei denen „es kompliziert ist“
Sobald Sie Sonnenaufgang und Sonnenuntergang festgelegt haben, ist der nächste Schritt die Identifizierung der beiden kritischen Zeiten von Dämmerung und Nacht. Dämmerung (Alot haShachar, oder einfach „Alot“) und Nacht (Tzeis hakochavim, oder einfach „Tzeis“) spiegeln sich gegenseitig ähnlich wie Sonnenaufgang und Sonnenuntergang. Dämmerung ist der Moment, an dem Licht (aber nicht die Sonne) am Horizont sichtbar ist. Nacht ist der Moment, an dem das Licht nicht mehr sichtbar ist.
Leider ist die Frage, ob überhaupt „Licht“ vorhanden ist oder nicht, sehr subjektiv und daher variiert die Art der Berechnung stark.
- Einige Traditionen verwenden eine feste Anzahl von Uhrenminuten vor Sonnenaufgang oder nach Sonnenuntergang.
- Andere werden die Astronomie nutzen, um die Zeit zu identifizieren, wenn die Sonne unter dem Horizont um eine bestimmte Anzahl von Grad ist.
- Andere verwenden eine Formel, wie zum Beispiel die Menge des Tageslichts (von Sonnenaufgang bis Sonnenuntergang), diese in 10 gleiche Teile teilen und dann diese Menge von Sonnenaufgang subtrahieren oder zu Sonnenuntergang addieren.
- Andererseits werden einige die Zeit nehmen, in der die Sonne unter dem Horizont steht an einem „gleichen“ Tag (das bedeutet an einem Tag der Tagundnachtgleiche im Frühling oder Herbst, wenn die Menge des Sonnenlichts und der Dunkelheit genau gleich sind), die Differenz (in Uhrminuten) zwischen dieser Zeit und dem Sonnenaufgang berechnen, diese Minuten gegen „jahreszeitliche Minuten“ („sha’ot zmaniyot“) für den speziellen Tag in Frage normalisieren und schließlich diesen Betrag vom Sonnenaufgang abziehen (oder das GANZE zum Sonnenuntergang für den betreffenden Tag hinzufügen).
Klingt verwirrend? Wie der Titel dieses Abschnitts sagt, „es ist kompliziert.“
Mein Punkt bei der Beschreibung dieser Berechnungen ist nicht, auf eine einzige „korrekte“ Berechnung festzulegen, sondern vielmehr dazu zu verhelfen, das ultimative Ziel jeder Art von Berechnung zu verstehen – sowie dafür zu sorgen, dass Sie verstehen, dass es verschiedene Wege gibt, wie verschiedene jüdische Traditionen zu jeder Berechnung gelangen.
Die komplexen Zeiten
Sobald Sie den Morgengrauen (alot), den Sonnenaufgang (netz), den Sonnenuntergang (shkia) und die Nacht (tzeis) haben, wird es möglich, andere wichtige tägliche Zeiten zu berechnen. Dazu gehören:
- Die früheste Zeit für die Nachmittagsgebete (Mincha Gedola), die oft als eine bestimmte Anzahl von jahreszeitlichen Stunden (sha’ah) nach dem Morgengrauen oder dem Sonnenaufgang berechnet wird. Der Punkt an dieser Zeit ist, dass es der früheste Moment ist, an dem „nachmittags“ (buchstäblich, nach dem Mittag) stattfindet.
- Die bevorzugte Zeit für die Nachmittagsgebete (Mincha ketana), die als eine größere Anzahl von jahreszeitlichen Stunden (sha’ah) nach dem Sonnenaufgang (netz) oder dem Morgengrauen (alot) berechnet wird. Der Punkt hier ist, dass es mehr als 3/4 des Weges durch den Tag ist, wenn es offensichtlich nachmittags ist – aber ohne das Risiko, dass es versehentlich Nacht (tzeis) wird.
- Die neueste Zeit für die Nachmittagsgebete (Plag haMincha oder „plag“), die oft als die Zeit zwischen der besten Zeit für die Nachmittagsgebete (mincha ketana) und der Nacht (tzeis) berechnet wird.
Obwohl es noch einige andere wichtige Zeiten gibt, auf die wir in einem anderen Blog eingehen werden, sind diese ausreichend, um uns zu beginnen.
Installation der PHP Zmanim Library
Nachdem wir diese technischen Details erledigt haben, können wir nun zu… einigen technischen Details übergehen! Nur diesmal sind es TECHNISCHE technische Details. (Und für diejenigen, die direkt von der Einleitung zu diesem Abschnitt gesprungen sind, WILLKOMMEN! Es ist großartig, euch wiederzusehen!)
Die PHP Zmanim ist eine komplexe Bibliothek, die nicht nur die Importierung von Kosher Java in die PHP-Sprache umfasst, sondern auch einige unterstützende Module wie Carbon (ein Werkzeug, das die Konvertierung von Datum und Uhrzeit schneller, einfacher und genauer macht); Symfony (ein Webdesign-Framework); und einige andere kleinere Hilfsprogramme.
Der Punkt ist, dass all diese Module mit PHP Zmanim zusammenarbeiten und Sie alle benötigen, damit etwas funktioniert. Der einfachste Weg, um sie alle zu installieren, ist die Verwendung des PHP-Hilfsprogramms „composer“, das Abhängigkeiten verwaltet.
Wenn Sie PHP Zmanim auf einem Webserver ausführen müssen und keinen Zugriff auf die Ausführung von Installationsprogrammen über die Kommandozeile haben, haben Sie immer noch Glück. Kopieren Sie einfach das Verzeichnis ./vendor von einer lokalen Installation, und – mit einigen Einschränkungen – wird es funktionieren.
Was sind die Einschränkungen? Der Hauptpunkt ist sicherzustellen, dass die PHP-Version, die von Ihrem Hosting-Anbieter unterstützt wird, mit der übereinstimmt, die Sie beim Installieren über Composer verwenden.
Dies bringt mich zum tatsächlichen Composer-Installationsbefehl. Ich weiß, wir sind noch nicht dazu gekommen, tatsächlich etwas zu codieren, aber lasst uns ein Verzeichnis einrichten, in dem die Skripte abgelegt werden sollen. Für diesen Blog nenne ich es /phpzmanim_test.
Öffnen Sie ein Terminalfenster und wechseln Sie in das Verzeichnis:
cd /php zmanim_test
Geben Sie nun den Befehl ein:
composer -V
(Beachten Sie, dass das ein Großbuchstabe V ist)
Dies bestätigt, ob Composer installiert ist oder nicht. Falls nicht, suchen Sie schnell nach dem besten Weg, um es auf Ihrer Betriebssysteminstallation zu installieren.
Geben Sie als Nächstes den Befehl ein:composer require zachweix/php-zmanim
Dies bewirkt zwei Dinge:
- Erstens wird die Datei
composer.json
im aktuellen Verzeichnis erstellt, mit Anweisungen, dass PHP Zmanim installiert werden soll. - Es installiert tatsächlich PHP Zmanim für Sie in einem ./vendor-Verzeichnis innerhalb des aktuellen Verzeichnisses. Keine zusätzlichen Schritte erforderlich.
Das einzige weitere „composer“-bezogene Element zu beachten ist, dass Sie, wenn Sie jemals ein Update benötigen, dies einfach tun können, indem Sie in das /phpzmanim_test-Verzeichnis (oder was auch immer Sie es genannt haben) gehen und den Befehl composer update
eingeben. Dies liest die Informationen in der composer.json-Datei und aktualisiert alles, was es dort findet.
(SPOILER: Das bedeutet, dass Sie die composer.json-Datei NICHT löschen sollten. Sie müssen sie jedoch auch nicht zusammen mit dem Rest Ihrer Anwendung auf Ihren Remote-Server kopieren, wenn Sie dies nicht möchten.)
Sobald das erledigt ist, müssen Sie die folgende Zeile in jedem PHP-Skript einfügen, das die PHP Zmanim-Bibliothek verwenden wird:
require 'vendor/autoload.php';
Erste Schritte mit PHP Zmanim
Nach der Installation von PHP Zmanim können Sie bereit sind, damit Code zu schreiben.
Um dies zu tun, erstellen Sie zunächst ein PHP-Objekt – eine Sammlung (eigentlich ein Array) von Daten, die in verschiedene Funktionen übergeben werden. Dieses Objekt enthält sowohl das spezifische Datum für die Zeiten, die Sie abrufen möchten, als auch die genaue Standortinformation.
Erstellen eines Objekts mit "Zmanim::Create()"
Bevor Sie beginnen, müssen Sie einige Dinge über den Standort wissen, für den Sie Zeiten abfragen:
- Die Breiten- und Längenkoordinaten.
- Die Zeitzone, formatiert unter Verwendung des tz-Datenbank Formats. (Beispiel:
"America/New_York"
). - Die Höhe dieses Standorts, wenn Sie dies wünschen. (SPOILER: Die Höhe spielt in diesen Berechnungen sehr selten eine Rolle.)
- Das Jahr, der Monat und der Tag der zu berechnenden Zeiten.
Das Format zum Erstellen Ihres Objekts lautet wie folgt:
$VARNAME = Zmanim::create(YEAR, MONTH, DAY, "NAME OF LOCATION", LATITUDE, LONGITUDE, ELEVATION, "TIME ZONE");
Hier ist ein spezielles Beispiel:
$zmanim = Zmanim::create(2019, 2, 21, "New York City", 40.850519, -73.929214, 200, "America/New_York");
Wie das als Skript mit einigen Variablen anstelle der wörtlichen Eingabe aussieht:
<?php
require 'vendor/autoload.php';
use PhpZmanim\Zmanim;
use PhpZmanim\Calendar\ComplexZmanimCalendar;
use PhpZmanim\Geo\GeoLocation;
$getdate = date('Y-m-d');
$getyear = date('Y', strtotime($getdate));
$getmonth = date('m', strtotime($getdate));
$getday = date('d', strtotime($getdate));
$locname = "Beit Knesset Chochmat Shlomo, Beachwood, OH";
$lat = 41.4939407;
$long = -81.516709;
$elev = 0;
$tz = 'America/New_York';
$zmanim = Zmanim::create($getyear, $getmonth, $getday, $locname, $lat, $long, $elev, $tz);
Mit diesem Code haben Sie ein Objekt für das heutige Datum für den angegebenen Standort. Sie können es sogar mithilfe der PHP-Funktion print_r()
ausdrucken:
print_r($zmanim);
Das sollte eine Ausgabe erzeugen, die in etwa so aussieht:
PhpZmanim\Zmanim Object
(
[calendar:PhpZmanim\Calendar\AstronomicalCalendar:private] => Carbon\Carbon Object
(
[endOfTime:protected] =>
[startOfTime:protected] =>
[constructedObjectId:protected] => 00000000000000080000000000000000
[localMonthsOverflow:protected] =>
[localYearsOverflow:protected] =>
[localStrictModeEnabled:protected] =>
[localHumanDiffOptions:protected] =>
[localToStringFormat:protected] =>
[localSerializer:protected] =>
[localMacros:protected] =>
[localGenericMacros:protected] =>
[localFormatFunction:protected] =>
[localTranslator:protected] =>
[dumpProperties:protected] => Array
(
[0] => date
[1] => timezone_type
[2] => timezone
)
(es gibt noch mehr, aber Sie verstehen, was ich meine).
Erhalten Sie Ihren ersten Echtzeiterkenntnis – Sonnenaufgang (Netz HaHachma)
Sobald Sie ein Objekt erstellt haben, ist es beinahe enttäuschend einfach, damit spezifische Zeiten mithilfe von PHP Zmanim abzufragen. Den Sonnenaufgang zu erhalten ist so einfach wie:
$sunrise = $zmanim->sunrise;
Wenn Sie nicht vertraut sind oder es noch nie verwendet haben, zeigt das ->
an, dass Sie ein Objekt (wiederum eine Sammlung von Datenelementen) abfragen oder eine integrierte Methode verwenden
Dies wird etwas zurückgeben, das so aussieht:
2024-12-20 07:48:52
Für diejenigen, die mitverfolgen, sieht der vollständige Code bisher so aus:
sunrise;
echo "$sunrise\n";
?>
Zusammenfassung
Es gibt noch viel mehr zu behandeln in PHP Zmanim, was ich in den kommenden Wochen vorhabe. Aber das sollte Ihnen zumindest den Einstieg in das Erstellen eines PHP-basierten Skripts oder einer Website und das Anzeigen genauer Zeiten für jüdische Momente ermöglichen.
Wie immer freue ich mich über Fragen, Korrekturen und Komplimente in den Kommentaren unten.
Source:
https://dzone.com/articles/time-data-series-getting-started-with-php-zmanim