paint-brush
ស៊េរីទិន្នន័យពេលវេលា៖ បន្តរឿងរ៉ាវដែលនៅសល់ដោយ@leonadato
350 ការអាន
350 ការអាន

ស៊េរីទិន្នន័យពេលវេលា៖ បន្តរឿងរ៉ាវដែលនៅសល់

ដោយ Leon Adato7m2024/10/08
Read on Terminal Reader

យូរ​ពេក; អាន

នៅក្នុងការប្រកាសប្លក់ចុងក្រោយ ខ្ញុំបានពន្យល់ពីរបៀបដំឡើង និងចាប់ផ្តើមជាមួយបណ្ណាល័យ PHP Zmanim ។ នៅពេលបន្ទាប់ ខ្ញុំបានជីកចូលទៅក្នុងការគណនាពេលវេលាដ៏ស្មុគស្មាញបន្ថែមទៀត និងថាមពលពិតប្រាកដនៃឧបករណ៍ - ការអនុវត្តមតិរបស់ Rabbinic ទូទៅបំផុតសម្រាប់ zmanim ផ្សេងៗ។ ខ្ញុំកំពុងជ្រើសរើសកន្លែងដែលខ្ញុំបានចាកចេញជាមួយនឹងការត្រួតគ្នាតិចតួចបំផុត ដូច្នេះប្រសិនបើអ្នកត្រូវការចំណាយពេលមួយនាទីដើម្បីបង្កើនល្បឿនឡើងវិញ នោះការបង្ហោះពីមុនត្រូវបានភ្ជាប់។
featured image - ស៊េរីទិន្នន័យពេលវេលា៖ បន្តរឿងរ៉ាវដែលនៅសល់
Leon Adato HackerNoon profile picture

មួយរយៈនេះ ខ្ញុំបានសរសេរអំពី PHP Zmanim ដែលជាការងារដែលខ្ញុំបានធ្វើជាមួយវា និងអ្វីដែលខ្ញុំបានរៀននៅពេលអនុវត្តវា។ ប៉ុន្តែទោះបីជាមានការពន្យារពេលក៏ដោយ ខ្ញុំតែងតែមានបំណងបន្តការសន្ទនា។ នោះហើយជាអ្វីដែលយើងកំពុងធ្វើនៅថ្ងៃនេះ។


នៅក្នុងការបង្ហោះដំបូង របស់ខ្ញុំ ខ្ញុំបានពន្យល់ពីរបៀបដំឡើង និងចាប់ផ្តើមជាមួយបណ្ណាល័យ PHP Zmanim ។ បន្ទាប់មក នៅក្នុង ការប្រកាសបន្ទាប់ ខ្ញុំបានជីកចូលទៅក្នុងការគណនាពេលវេលាដ៏ស្មុគស្មាញ និងថាមពលពិតរបស់ឧបករណ៍ - ការអនុវត្តមតិរបស់ Rabbinic ទូទៅបំផុតសម្រាប់ zmanim ផ្សេងៗ។ ខ្ញុំកំពុងជ្រើសរើសកន្លែងដែលខ្ញុំបានចាកចេញជាមួយនឹងការត្រួតគ្នាតិចតួច ដូច្នេះប្រសិនបើអ្នកត្រូវការចំណាយពេលមួយនាទីដើម្បីបង្កើនល្បឿនឡើងវិញ ខ្ញុំបានភ្ជាប់ទៅការបង្ហោះពីមុនទាំងនោះ។


គោលបំណងថ្ងៃនេះគឺដើម្បីស្វែងយល់ពីការប្រើប្រាស់ PHP Zmanim ដែលផ្លាស់ប្តូរលើសពីការប្រើប្រាស់បណ្ណាល័យ។ ក្នុង​នោះ​រួម​មាន៖

  • យកពេលវេលាស្ដង់ដារ និងកែតម្រូវវាសម្រាប់ករណីប្រើប្រាស់ជាក់លាក់នៃសាលាប្រជុំ (“Mincha ចាប់ផ្តើម 25 នាទីមុន Shkia ជារៀងរាល់ថ្ងៃ”)។


  • ការប្រើប្រាស់មុខងារបណ្ណាល័យ PHP Zmanim និងវិធីសាស្រ្តដែលផ្តល់ការគណនាមិនប្រើពេល - ដូចជាផ្នែក Torah ប្រចាំសប្តាហ៍ កាលបរិច្ឆេទភាសាហេព្រើរ និងថាតើកាលបរិច្ឆេទដែលបានបញ្ជាក់គឺជាថ្ងៃឈប់សម្រាក (ដូចជា Rosh Chodesh ឬ Sukkot)។

ការទទួលស្គាល់

ជា​ថ្មី​ម្តង​ទៀត ត្រូវ​ចាប់​ផ្តើម​ដោយ​ការ​ថ្លែង​អំណរគុណ​របស់​ខ្ញុំ​ចំពោះ​មនុស្ស​ដែល​បាន​ធ្វើ​ឱ្យ​អ្វីៗ​ទាំង​អស់​នេះ​អាច​ធ្វើ​ទៅ​បាន​។ សំខាន់បំផុត ក្នុងចំណោមបញ្ជីឈ្មោះដ៏វែងគឺ Zachary Weixelbaum ដែលជាអ្នកថែរក្សា បណ្ណាល័យ PHP Zmanim ខ្លួនឯង និង Eliyahu Hershfeld៖ អ្នកបង្កើត បណ្ណាល័យ Kosher Java ដែល PHP Zmanim មានមូលដ្ឋាន។

កម្មវិធីធ្វើឱ្យស្រស់រហ័ស

នៅពេលដែលយើងចាកចេញ យើងមានស្គ្រីប PHP ជាមូលដ្ឋានដ៏រឹងមាំមួយដែល៖

  • កំណត់អថេរសម្រាប់ទីតាំង (ក្នុងរយៈទទឹង/បណ្តោយ) រួមជាមួយនឹងតំបន់ពេលវេលា និងកម្ពស់។
  • កំណត់កាលបរិច្ឆេទ
  • បង្កើតវត្ថុ PHP zmanim ពីអថេរទាំងនោះ
  • ប្រើវិធីសាស្រ្តដែលភ្ជាប់មកជាមួយដើម្បីគណនាពេលវេលាសម្រាប់អ្វីៗពីថ្ងៃរះដល់ mincha ទៅ tzeit hakochavim


វាមើលទៅដូចនេះ៖

 <?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 (ថ្ងៃលិច) ដក 18 នាទី។
  • Summer Friday Mincha: Plag haMincha (ដោយប្រើ “plagHaminchaAteretTorah”) ដក 20 នាទី
  • រដូវរងាថ្ងៃសុក្រ Mincha: Shkia (ថ្ងៃលិច) ដក 22 នាទី។
  • ថ្ងៃសៅរ៍ Mincha: Shkia ដក 40 នាទី។
  • ថ្ងៃសៅរ៍ Ma'ariv: Shkia បូក 50 នាទី។
  • ចុងថ្ងៃសៅរ៍នៃ Shabbat: Shkia បូក 45 នាទី។
  • Mincha ប្រចាំសប្តាហ៍៖ ស្វែងរក shkia ដំបូងបំផុតសម្រាប់សប្តាហ៍ បន្ទាប់មកដក 17 នាទី។


ខណៈពេលដែលគ្រប់ពេលវេលាផ្សេងទៀតដែលខ្ញុំបានរៀបរាប់នៅក្នុងប្លក់មុននេះនៅតែជាបញ្ហា សង្ឃឹមថាអ្នកកំពុងចាប់ផ្តើមដឹងថាវាមានសារៈសំខាន់តិចជាងការរំពឹងទុក។


ដូច្នេះតើអ្នកចំណាយពេលមួយណា (ដូចជា 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។ ខ្ញុំសុំទោសប្រសិនបើខ្ញុំធ្វើឱ្យអ្នកមានការងឿងឆ្ងល់។ ប៉ុន្តែវាពិតជាងាយស្រួលណាស់។

តើ Torah Portion ជាអ្វី? តើកាលបរិច្ឆេទហេប្រ៊ូជាអ្វី? តើ Rosh Chodesh នៅពេលណា?

(...និងសំណួរសំខាន់ៗផ្សេងទៀត ប៉ុន្តែជារឿយៗត្រូវបានសួរនៅក្នុង និងជុំវិញសាលាប្រជុំរបស់អ្នក។)


រួមជាមួយនឹងការគណនាកាលបរិច្ឆេទ បណ្ណាល័យ 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 និងថ្ងៃឈប់សម្រាក រួមជាមួយនឹងការប្រារព្ធពិធីផ្សេងៗទៀត។


ក្នុងពេលជាមួយគ្នានេះ ប្រសិនបើមានអ្វីផ្សេងទៀតដែលអ្នកចង់ឃើញខ្ញុំគ្របដណ្តប់។ ឬប្រសិនបើអ្នកមានចម្ងល់ ការកែតម្រូវ ឬការសរសើរ សូមទុកឱ្យពួកគេនៅក្នុងមតិយោបល់ខាងក្រោម។

L O A D I N G
. . . comments & more!

About Author

Leon Adato HackerNoon profile picture
Leon Adato@leonadato
Leon has been a speaker and blogger in the monitoring and observability space for almost a decade.

ព្យួរស្លាក

អត្ថបទនេះត្រូវបានបង្ហាញនៅក្នុង...