មួយរយៈនេះ ខ្ញុំបានសរសេរអំពី PHP Zmanim ដែលជាការងារដែលខ្ញុំបានធ្វើជាមួយវា និងអ្វីដែលខ្ញុំបានរៀននៅពេលអនុវត្តវា។ ប៉ុន្តែទោះបីជាមានការពន្យារពេលក៏ដោយ ខ្ញុំតែងតែមានបំណងបន្តការសន្ទនា។ នោះហើយជាអ្វីដែលយើងកំពុងធ្វើនៅថ្ងៃនេះ។
នៅក្នុងការបង្ហោះដំបូង របស់ខ្ញុំ ខ្ញុំបានពន្យល់ពីរបៀបដំឡើង និងចាប់ផ្តើមជាមួយបណ្ណាល័យ PHP Zmanim ។ បន្ទាប់មក នៅក្នុង ការប្រកាសបន្ទាប់ ខ្ញុំបានជីកចូលទៅក្នុងការគណនាពេលវេលាដ៏ស្មុគស្មាញ និងថាមពលពិតរបស់ឧបករណ៍ - ការអនុវត្តមតិរបស់ Rabbinic ទូទៅបំផុតសម្រាប់ zmanim ផ្សេងៗ។ ខ្ញុំកំពុងជ្រើសរើសកន្លែងដែលខ្ញុំបានចាកចេញជាមួយនឹងការត្រួតគ្នាតិចតួច ដូច្នេះប្រសិនបើអ្នកត្រូវការចំណាយពេលមួយនាទីដើម្បីបង្កើនល្បឿនឡើងវិញ ខ្ញុំបានភ្ជាប់ទៅការបង្ហោះពីមុនទាំងនោះ។
គោលបំណងថ្ងៃនេះគឺដើម្បីស្វែងយល់ពីការប្រើប្រាស់ PHP Zmanim ដែលផ្លាស់ប្តូរលើសពីការប្រើប្រាស់បណ្ណាល័យ។ ក្នុងនោះរួមមាន៖
ជាថ្មីម្តងទៀត ត្រូវចាប់ផ្តើមដោយការថ្លែងអំណរគុណរបស់ខ្ញុំចំពោះមនុស្សដែលបានធ្វើឱ្យអ្វីៗទាំងអស់នេះអាចធ្វើទៅបាន។ សំខាន់បំផុត ក្នុងចំណោមបញ្ជីឈ្មោះដ៏វែងគឺ Zachary Weixelbaum ដែលជាអ្នកថែរក្សា បណ្ណាល័យ PHP Zmanim ខ្លួនឯង និង Eliyahu Hershfeld៖ អ្នកបង្កើត បណ្ណាល័យ Kosher Java ដែល PHP Zmanim មានមូលដ្ឋាន។
នៅពេលដែលយើងចាកចេញ យើងមានស្គ្រីប PHP ជាមូលដ្ឋានដ៏រឹងមាំមួយដែល៖
វាមើលទៅដូចនេះ៖
<?php require 'vendor/autoload.php'; use PhpZmanim\Zmanim; use PhpZmanim\Calendar\ComplexZmanimCalendar; use PhpZmanim\Geo\GeoLocation; # Set variables: $locname = "Beit Knesset Chochmat Shlomo, Beachwood, OH"; $lat = 41.4939407; $long = -81.516709; $elev = 0; $tz = 'America/New_York'; $getyear = 2024; $getday = 20; $getmonth = 12; $testzmanim = Zmanim::create($getyear, $getmonth, $getday, $locname, $lat, $long, $elev, $tz); $sunrise = $testzmanim->sunrise; echo "$sunrise\n"; ?>
ប៉ុន្តែថ្ងៃរះគ្រាន់តែជាការចាប់ផ្តើមប៉ុណ្ណោះ។ ដោយប្រើការគណនាដែលភ្ជាប់មកជាមួយណាមួយ (ដែលត្រូវបានពិពណ៌នានៅលើ ទំព័រ GitHub readme ) អ្នកអាចទាញពេលវេលាជាច្រើន។ ជាឧទាហរណ៍ ដើម្បីឱ្យ Mincha Gedola ប្រើគំនិត Rabbinic ជាក់លាក់ ខ្ញុំអាចរួមបញ្ចូលៈ
$gedolah = $zmanim->minchaGedola16Point1Degrees
នៅក្នុងប្លក់ចុងក្រោយនេះ ខ្ញុំក៏បានរៀបរាប់អំពីវិធីប្រើប្រាស់ទម្រង់បែបបទរបស់ PHP Zmanim ដើម្បីធ្វើឱ្យលទ្ធផលអាចអានបានកាន់តែច្រើន៖
$gedolah = $gedolah->format('g:i a');
សម្រាប់អ្នកដែលមិនចំណាយពេលច្រើនក្នុងសាលាប្រជុំ (គ្មានការបន្ទោស គ្មានការអៀនខ្មាស អ្នកនៅតែស្វាគមន៍នៅទីនេះ) វាប្រហែលជាមិនច្បាស់ទេ ប៉ុន្តែ ទោះបីជាមានឈ្មោះ zman ក៏ដោយ ក៏អង្គការតិចណាស់ដែលអធិស្ឋាន Mincha (ពេលរសៀល។ ការអធិស្ឋាន) នៅ Mincha Ketana, Mincha Gedola ឬ Plag haMincha ។
ជាការពិត ការងារជាច្រើនទាក់ទងនឹងការគណនាពេលវេលា មិនសូវជាប់ពាក់ព័ន្ធជាមួយពាក្យថា "តើម៉ោងប៉ុន្មានគឺ Mincha Gedola?" និងច្រើនទៀតជាមួយ "តើយើងអាចកំណត់ពេលថ្ងៃដោយសមហេតុផលដល់ Mincha ដូច្នេះអ្នកគ្រប់គ្នាមានពេលមកទីនេះបន្ទាប់ពីធ្វើការ។ ប៉ុន្តែមិនយឺតទេដែលគ្មានអ្នកមកព្រោះនឹកអាហារពេលល្ងាច?
ប្រសិនបើនោះជាទ្រឹស្តីពេក អនុញ្ញាតឱ្យខ្ញុំចែករំលែកល្បែងផ្គុំរូបឡូជីខល ដែល សាលាប្រជុំរបស់ខ្ញុំ ពិចារណានៅពេលរៀបចំកាលវិភាគប្រចាំសប្តាហ៍៖
ខណៈពេលដែលគ្រប់ពេលវេលាផ្សេងទៀតដែលខ្ញុំបានរៀបរាប់នៅក្នុងប្លក់មុននេះនៅតែជាបញ្ហា សង្ឃឹមថាអ្នកកំពុងចាប់ផ្តើមដឹងថាវាមានសារៈសំខាន់តិចជាងការរំពឹងទុក។
ដូច្នេះតើអ្នកចំណាយពេលមួយណា (ដូចជា shkia/sunset) ហើយបន្ទាប់មកបន្ថែម ឬដកនាទី? យើងនឹងចាប់ផ្តើមជាមួយនឹងស្គ្រីបដូចគ្នាដែលយើងមានពីមុន៖
<?php require 'vendor/autoload.php'; use PhpZmanim\Zmanim; use PhpZmanim\Calendar\ComplexZmanimCalendar; use PhpZmanim\Geo\GeoLocation; # Set variables: $locname = "Beit Knesset Chochmat Shlomo, Beachwood, OH"; $lat = 41.4939407; $long = -81.516709; $elev = 0; $tz = 'America/New_York'; $getyear = 2024; $getday = 20; $getmonth = 12; $testzmanim = Zmanim::create($getyear, $getmonth, $getday, $locname, $lat, $long, $elev, $tz);
ដល់ចំណុចនោះ យើងនឹងបន្ថែមកូដដើម្បីទទួលបានថ្ងៃលិច៖
$sunset = $zmanim->sunset;
ហើយបន្ទាប់មក យើងនឹងដក 18 នាទី ដើម្បីទទួលបានពេលវេលាបំភ្លឺទៀន៖
$candles = date('g:i a', strtotime($sunset . " -18 minutes"));
នោះជាសិទ្ធិ។ អ្នកគ្រាន់តែប្រើមុខងារ string-to-time របស់ PHP។ ខ្ញុំសុំទោសប្រសិនបើខ្ញុំធ្វើឱ្យអ្នកមានការងឿងឆ្ងល់។ ប៉ុន្តែវាពិតជាងាយស្រួលណាស់។
(...និងសំណួរសំខាន់ៗផ្សេងទៀត ប៉ុន្តែជារឿយៗត្រូវបានសួរនៅក្នុង និងជុំវិញសាលាប្រជុំរបស់អ្នក។)
រួមជាមួយនឹងការគណនាកាលបរិច្ឆេទ បណ្ណាល័យ KosherJava (ហើយដូច្នេះបណ្ណាល័យ PHP Zmanim) មានវិធីសាស្រ្ត និងមុខងារដើម្បីផ្តល់ព័ត៌មានយ៉ាងឆាប់រហ័សដូចអ្វីដែលបានសួរខាងលើ។
រឿងដំបូងដែលត្រូវយល់គឺថាវត្ថុ PHP Zmanim ដែលយើងកំពុងធ្វើការជាមួយរហូតមកដល់ពេលនេះគឺជាវត្ថុ Zmanim - វត្ថុដែលមានកំណត់ពេលវេលាជាក់លាក់សម្រាប់កាលបរិច្ឆេទជាក់លាក់មួយ។ សម្រាប់អ្វីៗដែលទាក់ទងនឹងកាលបរិច្ឆេទខ្លួនឯង យើងបង្កើតវត្ថុប្រតិទិន Jewish Calendar ភ្លាមៗ។ ដំណឹងល្អគឺថាវាកាន់តែងាយស្រួលក្នុងការបង្កើត។ អ្វីដែលអ្នកត្រូវការគឺឆ្នាំ ខែ និងថ្ងៃ។
<?php require 'vendor/autoload.php'; use PhpZmanim\Zmanim; use PhpZmanim\Calendar\ComplexZmanimCalendar; use PhpZmanim\Geo\GeoLocation; # Set variables: $getyear = 2024; $getday = 21; $getmonth = 09; $jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($getyear, $getmonth, $getday));
ឥឡូវនេះ យើងមានវត្ថុ JewishCalendar ដើម្បីធ្វើការជាមួយ និងអាចប្រើវិធីសាស្រ្តស្រដៀងនឹងអ្វីដែលយើងបានរកឃើញសម្រាប់ដង។ ឧទាហរណ៍៖ ដោយសន្មតថាកាលបរិច្ឆេទដែលយើងជ្រើសរើសជាថ្ងៃសៅរ៍ យើងអាចទទួលបានចំណែក Torah៖
$format = Zmanim::format(); $parshaeng = json_decode('"' . $format->formatParsha($jewishCalendar) . '"');
(មិនអើពើនឹងការកំណត់ទម្រង់ $ សម្រាប់ពេលនេះទេ។ យើងនឹងស្វែងយល់វាបន្តិចទៀត)។
ប្រសិនបើអ្នកដំណើរការកូដនោះ $parshaeng នឹងផ្តល់ឱ្យអ្នក៖
Parshas Ki Savo
អ្នកនឹងសម្គាល់ឃើញថា យើងមិនចាំបាច់ផ្តល់រយៈទទឹង រយៈបណ្តោយ តំបន់ពេលវេលា។ ផ្ទាល់ខ្លួន ទោះបីជាមិនមានការគណនាពេលវេលាក៏ដោយ។
ផ្នែក Torah? ពិតណាស់! នេះជាកន្លែងដែលបន្ទាត់ $format ចូលមក។
ទីមួយ ការពន្យល់អំពីអ្វីដែលវាគឺជា៖ វាជាវិធីសាស្ត្រដែលកែប្រែវត្ថុដូចជា Zmanim និង jewishCalendar កំណត់ជម្រើសបង្ហាញ និងលទ្ធផល។ ការកំណត់ Zmanim::format() ដោយគ្មានព័ត៌មានផ្សេងទៀត លំនាំដើមជាភាសាអង់គ្លេស។ ប៉ុន្តែបន្ទាប់មកអ្នកអាចប្រាប់ប្រព័ន្ធថាអ្នកចង់បានភាសាហេព្រើរជាមួយនឹងបន្ទាត់បន្ថែមនេះ:
$format->setHebrewFormat(true)
ឥឡូវនេះ ប្រសិនបើអ្នកដំណើរការ json_decode('”' . $format->formatParsha($ jewishCalendar) . '”') ដូចគ្នា អ្នកនឹងទទួលបាន៖
כי תבוא
ដាក់វាទាំងអស់គ្នា៖
<?php require 'vendor/autoload.php'; use PhpZmanim\Zmanim; use PhpZmanim\Calendar\ComplexZmanimCalendar; use PhpZmanim\Geo\GeoLocation; # Set variables: $getyear = 2024; $getday = 21; $getmonth = 09; $jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($getyear, $getmonth, $getday)); $format = Zmanim::format(); $parshaeng = json_decode('"' . $format->formatParsha($jewishCalendar) . '"'); $format->setHebrewFormat(true); $parshaheb = json_decode('"' . $format->formatParsha($jewishCalendar) . '"'); echo "$parshaheb - $parshaeng\n";
វានឹងបង្ហាញ៖ כי תבUA – Ki Savo
ពិសេសជាងនេះទៅទៀត តើថ្ងៃអ្វីជាថ្ងៃហេប្រឺ?
ដូចឧទាហរណ៍មុន យើងចាប់ផ្ដើមជាមួយប្រតិទិន JewishCalendar និងទម្រង់វត្ថុ។
$jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($theyear, $themonth, $theday)); $format = Zmanim::format();
បន្ទាប់មក យើងបន្ថែមបន្ទាត់ដូចគ្នាដើម្បីកំណត់ទម្រង់ជាភាសាហេព្រើរ។
$format->setHebrewFormat(true);
ហើយចុងក្រោយ (និងសាមញ្ញដោយស្មើភាព) យើងស្នើសុំលទ្ធផលវត្ថុប្រតិទិនត្រង់៖
$zmandate = json_decode('"' . $format->format($jewishCalendar) . '"');
នោះហើយជាអ្វីដែលអ្នកត្រូវការតាមព្យញ្ជនៈ។ លទ្ធផលគឺដូចនេះ៖
17 Elul, 5784
បាទ/ចាស ទោះបីជាយើងបានបញ្ជាក់ setHebrewFormat វាចេញមកជាភាសាអង់គ្លេសក៏ដោយ។
ដើម្បីទទួលបានកាលបរិច្ឆេទជាភាសាហេព្រើរដើម្បីបង្ហាញយ៉ាងពេញលេញជាភាសាហេប្រ៊ូ - ទាំងពាក្យ និងអក្សរ - យើងហៅវិធីផ្សេងគ្នាបន្តិចដែលហៅថា HebrewDateFormatter សមស្រប។ ដោយសន្មតថា (ម្តងទៀត) អ្នកបានដំឡើងអថេរដំបូងរបស់អ្នក ហើយបានបង្កើតវត្ថុប្រតិទិន Jewish លេខកូដដែលត្រូវបញ្ចេញកាលបរិច្ឆេទជាភាសាហេប្រ៊ូគឺ៖
$hebformat = HebrewDateFormatter::create(); $hebformat->setHebrewFormat(true); $hebdate = json_decode('"' . $hebformat->format($jewishCalendar) . '"'); print("Hebrew date: $hebdate\n");
ដែលនឹងផ្តល់ឱ្យអ្នក:
Hebrew date: י״ח אלול תשפ״ד
ពេលខ្លះ អ្នកត្រូវពិនិត្យមើលថាតើកាលបរិច្ឆេទជាក់លាក់មួយគឺ… ជាថ្ងៃជាក់លាក់។ ដូចជា Rosh Chodesh (ខែថ្មី) ឬជាផ្នែកមួយនៃថ្ងៃឈប់សម្រាកច្រើនថ្ងៃ (ដូចជា Sukkot) ។
វាប្រែថាវិធីសាស្ត្រ PHP Zmanim ធ្វើឱ្យវាសាមញ្ញណាស់។ សន្មតថាអ្នកបានចាប់ផ្តើមតាមរបៀបដូចគ្នានឹងឧទាហរណ៍ផ្សេងទៀត
នៅពេលដែលអ្នកបានដំឡើងវត្ថុ JewishCalendar វាសាមញ្ញដូចជា
$jewishCalendar->isRoshHashana(); $jewishCalendar->isSuccos();
ប្រសិនបើកាលបរិច្ឆេទត្រូវគ្នានឹងថ្ងៃឈប់សម្រាក វានឹងត្រឡប់ “ពិត” ហើយអ្នកអាចបន្តជាមួយនឹងតក្កវិជ្ជា ឬដំណើរការណាមួយដែលអ្នកចង់បាន ដូចជាការបង្ហាញកាលបរិច្ឆេទ (ឬអត់)។
ជឿឬមិនជឿ វានៅមានច្រើនទៀតដែលត្រូវបិទបាំង។ ក្នុងប៉ុន្មានសប្តាហ៍ខាងមុខនេះ នៅពេលណាដែលខ្ញុំទៅដល់ទីនោះ ខ្ញុំចង់ប្រាប់ពីវិធីដើម្បីប្រើប្រាស់មុខងារតារាសាស្ត្រដែលភ្ជាប់មកជាមួយសម្រាប់ការគណនាពេលវេលា។ ជឿឬមិនជឿ វាពិតជាអាចមានបញ្ហាទាក់ទងនឹងការមានពេលវេលាត្រឹមត្រូវពិតប្រាកដសម្រាប់អ្វីៗដូចជាការចាប់ផ្តើម និងចុងបញ្ចប់នៃ Shabbat និងថ្ងៃឈប់សម្រាក រួមជាមួយនឹងការប្រារព្ធពិធីផ្សេងៗទៀត។
ក្នុងពេលជាមួយគ្នានេះ ប្រសិនបើមានអ្វីផ្សេងទៀតដែលអ្នកចង់ឃើញខ្ញុំគ្របដណ្តប់។ ឬប្រសិនបើអ្នកមានចម្ងល់ ការកែតម្រូវ ឬការសរសើរ សូមទុកឱ្យពួកគេនៅក្នុងមតិយោបល់ខាងក្រោម។