Есть ли функция PHP для изменения даты перехода? - PullRequest
0 голосов
/ 04 февраля 2020

Я создал бота 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...