時間數據系列:故事的延續

自從我寫了關於 PHP Zmanim 的文章以來已經有一段時間了 我在這方面所做的工作以及在實施過程中學到的東西。儘管有些延遲,我一直打算繼續這個話題。這就是我們今天要做的事。

在我的 第一篇文章 中,我解釋了如何安裝和開始使用 PHP Zmanim 庫。然後,在 下一篇文章中, 我深入探討了計算更複雜的時間以及這個工具的真正力量 應用各種 zmanim 的最常見拉比意見。 我將從我停下的地方繼續,重疊部分最小,因此如果您需要花一點時間回顧,我已經鏈接到那些之前的文章。

今天的目標是探索 PHP Zmanim 的使用,超越對庫的相對簡單使用。這包括:

  • 將標準時間調整為特定於會堂的使用案例(“每日 Mincha 在 Shkia 前 25 分鐘開始”)。
  • 使用 PHP Zmanim 庫的功能和方法,提供非時間計算 例如每週的托拉部分、希伯來日期以及指定日期是否為假日(如 Rosh Chodesh 或 Sukkot)。

致謝

再次感謝那些使這一切成為可能的人。在眾多名字中,首要的是Zachary Weixelbaum,也就是PHP Zmanim庫的維護者,以及Eliyahu Hershfeld,也就是Kosher Java庫的創建者,PHP Zmanim就是基於這個庫開發的。

快速回顧

上次我們完成了一個堅實的基本PHP腳本,它:

  • 設置了位置(緯度/經度)、時區和海拔的變數。
  • 設置了日期
  • 從這些變數創建了一個php zmanim對象
  • 使用內置方法計算從日出到mincha到tzeit hakochavim等任何時間

它看起來像這樣:

PHP

 

但日出只是個開始。使用任何內置計算(這些在GitHub ReadMe頁面中有描述),您可以獲取各種時間。例如,要使用特定拉比意見獲取Mincha Gedola,我可以包括:

PHP

 

在上一篇博客中,我還介紹了如何使用PHP Zmanim的格式化方法使輸出更易讀:

PHP

 

“依個人口味”調整時間

對於那些不常在會堂裡度過時間的人(沒有責怪,也沒有羞愧,你仍然受歡迎),也許不太明顯,但儘管在zman的名稱中很少有組織在Mincha Ketana、Mincha Gedola或Plag haMincha時禱告(午後祈禱)。

事實上,與計算時間相關的許多工作與直接的“Mincha Gedola是幾點?”不那麼有關,而更多地與“我們可以合理安排Mincha的時間到多晚,讓每個人下班後都有時間到達這裡;但不要晚,以至於沒人來因為他們會錯過晚餐?”

如果這太理論化了,請允許我分享在設定每週時間表時我們的會堂考慮的邏輯競技拼圖:

  • 週五晚上點燈:日落時間減去18分鐘
  • 夏季週五Mincha:Plag haMincha(使用“plagHaminchaAteretTorah”)減去20分鐘
  • 冬季週五Mincha:日落時間減去22分鐘
  • 週六Mincha:日落時間減去40分鐘
  • 週六Ma’ariv:日落時間加50分鐘
  • 週六安息日結束:日落時間加45分鐘
  • 平日Mincha:找到本週最早的日落時間,然後減去17分鐘

雖然我在之前的博客中提到的所有其他時間仍然重要,但希望您開始意識到它們重要的頻率沒有人們可能期望的那麼高。

所以,如何時間(如夜幕降臨/日落)然後加上或減去分鐘呢?我們將從之前的相同腳本開始:

PHP

 

接著,我們將添加代碼以獲得日落時間:

PHP

 

然後,我們將減去18分鐘來獲得點燭時間:

PHP

 

沒錯。你只需使用PHP本身的字符串轉時間函數。如果讓你感到懸念,我很抱歉。但實際上就是這麼簡單。

什麼是托拉部分?希伯來日期是什麼?什麼時候是月初?

(…以及在你的會堂周圍經常被問到的其他重要但令人困惑的問題。)

除了日期計算,KosherJava庫(因此PHP Zmanim庫)還提供了快速提供上述問題所需信息的方法和函數。

首先要理解的是,我們到目前為止使用的PHP Zmanim對象是一個Zmanim對象一個為特定日期設置了一組特定時間的對象。對於涉及日期本身的事物,我們會實例化一個jewishCalendar對象。好消息是,創建它要容易得多。你只需要年份、月份和日期。

PHP

 

我們現在有一個jewishCalendar對象可以使用,並可以使用與我們找到的時間類似的方法。例如,假設我們選擇的日期是一個星期六,我們可以獲得托拉部分:

PHP

 

(暫時忽略$format設置。我們稍後會深入研究)。

如果你運行那段代碼,$parshaeng將會給你:

PHP

 

您會注意到我們不需要提供緯度、經度、時區等信息。我無法再次強調這種能力的重要性——單單這個功能就足以使 PHP Zmanim 函式庫變得非常有用,即使沒有時間計算也是如此。這使得 PHP Zmanim 函式庫非常有用,即使沒有時間計算。

能用希伯來語嗎?

希伯來語的《帖拉部分》?當然可以!這就是$format這一行的作用。

首先,解釋一下它的作用:這是一種修改 Zmanim 和jewishCalendar等對象的方法,設置顯示和輸出選項。將Zmanim::format()設置為沒有其他信息時,默認為英語。但是您可以通過添加以下額外代碼告訴系統您想要希伯來語:

PHP

 

現在,如果運行相同的json_decode('"' . $format->formatParsha($jewishCalendar) . '"')代碼,您會得到:

Plain Text

 

將所有內容結合在一起:

PHP

 

這將顯示:כי תבוא – Ki Savo。

今天是星期幾?

更確切地說,是希伯來曆的星期幾?

與上一個示例一樣,我們從一個jewishCalendar和一個格式對象開始。

PHP

 

然後,我們添加同樣的代碼將格式設置為希伯來語。

PHP

 

最後(並非非常複雜),我們要求一個直接的曆書對象輸出:

PHP

 

這就是您需要的全部。結果是這樣的:

Plain Text

 

是的,即使我們指定了setHebrewFormat,它仍然以英語顯示。

我能用真正的希伯來語嗎?

為了讓希伯來日期完全以希伯來語顯示——包括單詞和字母——,我們使用一種稍有不同的方法,稱為HebrewDateFormatter

假設(再次)您設置了初始變量並創建了一個jewishCalendar對象,輸出希伯來語日期的代碼將是:

PHP

 

這將給您:

Plain Text

 

今天是這一天嗎?

有時您需要檢查特定日期是否是… 特定的一天,例如Rosh Chodesh(新月)或多日節日的一部分(如Sukkot)。

事實證明,PHP Zmanim方法使這變得非常簡單。假設您已經像其他示例一樣開始,一旦設置了jewishCalendar對象,只需這樣:

PHP

 

如果日期與節日匹配,它將返回“true”,然後您可以繼續進行您想要的任何邏輯或處理,例如顯示日期(或不顯示)。

接下來是什麼?

信不信由你,還有更多要談論的。在接下來的幾週內,每當我有時間,我會介紹如何利用內置的天文功能進行時間計算。信不信由你,這對於確切計算Shabbat和節日的開始和結束時間以及其他儀式非常重要。

與此同時,如果您想看到我介紹其他主題,或者有問題、更正或讚美,請隨時在下方留言。

Source:
https://dzone.com/articles/time-data-series-the-rest-of-the-story