Я создал бота Telegram, в котором пользователь набирает функцию и возвращается с текущей датой Copti c.
Есть ли функция PHP, чтобы изменить время перехода на 6 Pm, означая, что день будет меняться в 6 часов вечера против полуночи?
День Копти c меняется в 6 часов вечера, а не в полночь. Поэтому, когда пользователь вводит / date после 18:00, он отображает дату Copti c этого дня, но не переходит до полуночи.
Я ограничен в своих знаниях PHP и изучил документацию, но не смог найти то, что мне нужно.
Спасибо за ваше время.
<?php
require 'vendor/autoload.php';
use meysampg\intldate\IntlDateTrait;
class Cal
{
use IntlDateTrait;
private function getMonth($num)
{
switch ($num) {
case '1':
return 'Thoout';
break;
case '2':
return 'Paope';
break;
case '3':
return 'Hathor';
break;
case '4':
return 'Koiahk';
break;
case '5':
return 'Tobe';
break;
case '6':
return 'Meshir';
break;
case '7':
return 'Paremhotep';
break;
case '8':
return 'Parmoute';
break;
case '9':
return 'Pashons';
break;
case '10':
return 'Paone';
break;
case '11':
return 'Epep';
break;
case '12':
return 'Mesore';
break;
case '13':
return 'Nesi';
break;
default:
return 'error';
break;
}
}
public function getDate()
{
$rawdate = date('Y-m-d');
$date = explode('-', $rawdate);
$result = $this->fromGregorian([$date[0], $date[1], $date[2]])->toCoptic()->asDateTime();
$dateres = substr($result, 0, -10);
$datecomp = explode('/', $dateres);
$m = $this->getMonth($datecomp[1]);
$d = $datecomp[2];
$y = $datecomp[0];
return "$m $d, $y";
}
public function getCopticMonth()
{
$rawdate = date('Y-m-d');
$date = explode('-', $rawdate);
$result = $this->fromGregorian([$date[0], $date[1], $date[2]])->toCoptic()->asDateTime();
$dateres = substr($result, 0, -10);
$datecomp = explode('/', $dateres);
$m = $this->getMonth($datecomp[1]);
return "$m";
}
public function getCopticDay()
{
$rawdate = date('Y-m-d');
$date = explode('-', $rawdate);
$result = $this->fromGregorian([$date[0], $date[1], $date[2]])->toCoptic()->asDateTime();
$dateres = substr($result, 0, -10);
$datecomp = explode('/', $dateres);
$d = $datecomp[2]-1;
return "$d";
}
}
$chat_id = $t->ChatID();
$result = $t->getData();
$text = $result['message']['text'];
$calendar = new Cal;
$content = array('chat_id' => $chat_id);
$year = date("Y");
$month = date("n");
$ex_month = date("F");
$coptic_month = $calendar->getCopticMonth();
$day = date("j");
$ex_day = date("d");
$data = file_get_contents("coptic_year/" . $coptic_month . ".json");
$json = json_decode($data);
$n = $day - 1;
$i = 0;
$saint = '';
do {
if (
isset($json->days[$n]->celebrations[$i]) &&
$json->days[$n]->celebrations[$i] != ""
) {
$saint .= "- " . $json->days[$n]->celebrations[$i]->title . "\n";
$i++;
} else {
break;
}
} while (1);
function doDate($ex_month,$day,$copticdate)
{
$data = file_get_contents("coptic_year/" . $ex_month . ".json");
$json = json_decode($data);
$n = $day ;
$i = 0;
$saint = '';
$saint .="Today is : ".$copticdate."\n\n";
do {
if (
isset($json->days[$n]->celebrations[$i]) &&
$json->days[$n]->celebrations[$i] != ""
) {
$saint .= "(".($i+1).") -" . $json->days[$n]->celebrations[$i]->title . "\n";
$i++;
} else {
break;
}
} while (1);
return ($saint);
}
if ($text) {
switch ($text) {
case '/start':
$content['text'] = "+ Welcome to CopticBot. You can use /date to return the current Coptic date along with the saint(s) of the day. ";
$t->sendMessage($content);
break;
/*case '/date':
$date = $calendar->getDate();
$content['text'] = "Today is $date";
$t->sendMessage($content);
break;
case '/saint':
$content['text'] = "$saint";
$t->sendMessage($content);
break;
*/
case '/date':
$copticdate = $calendar->getDate();
$date = $calendar->getCopticMonth();
$day = $calendar->getCopticDay();
$content['text'] = doDate($date,$day,$copticdate);
$t->sendMessage($content);
break;
case '/month':
$date = $calendar->getCopticMonth();
$content['text'] = "Current Coptic Month is $date";
$t->sendMessage($content);
break;
default:
$content['text'] = "That didn't work. Did you mean /date?";
$t->sendMessage($content);
break;
}
}