Code-igniter Дата преобразования в хиджры не показывает результат - PullRequest
0 голосов
/ 20 февраля 2020

Я конвертирую текущую дату в дату хиджры. Пожалуйста, смотрите ссылку на код ниже, который я использовал в формате codeigniter, взятом с сайта таким же образом, но он ничего мне не показывал. Если я сделал что-то не так, пожалуйста, дайте мне знать это тоже.

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');

class HijriDate extends CI_Controller{

 private $hijri;

public function __construct(){
    parent::__construct();
    $this->load->helper('url');
    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

    if (isset($_SERVER['HTTP_ORIGIN'])) {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        //header('Access-Control-Max-Age: 86400');    // cache for 1 day
    }

    // Access-Control headers are received during OPTIONS requests
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { 
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
        exit(0);
    }
   // $this->load->model('HijriDateModel','hdm');
    // date_default_timezone_set('America/New_York');



}

public function index($time = false)
{
    //$this->load->view('view'); 
    if(!$time) $time = time();
    $this->hijri = $this->GregorianToHijri($time);
    $result=$this->hijri;
    return json_encode($result);
   // $this->GregorianToHijri($time = null);
}
public function get_date(){
    return $this->hijri[1] . ' ' . $this->get_month_name($this->hijri[0]) . ' ' . $this->hijri[2] . 'H';
}

public function get_day(){
    return $this->hijri[1];
}

public function get_month(){
    return $this->hijri[0];
}

public function get_year(){
    return $this->hijri[2];
}

public function get_month_name($i){
    static $month  = array(
        "muharram", "safar", "rabiulawal", "rabiulakhir",
        "jamadilawal", "jamadilakhir", "rejab", "syaaban",
        "ramadhan", "syawal", "zulkaedah", "zulhijjah"
    );
    return $month[$i-1];
}

private function GregorianToHijri($time = null){
    if ($time === null) $time = time();
    $m = date('m', $time);
    $d = date('d', $time);
    $y = date('Y', $time);

    return $this->JDToHijri(cal_to_jd(CAL_GREGORIAN, $m, $d, $y));
}

private function HijriToGregorian($m, $d, $y){
    return jd_to_cal(CAL_GREGORIAN, $this->HijriToJD($m, $d, $y));
}

# Julian Day Count To Hijri
private function JDToHijri($jd){
    $jd = $jd - 1948440 + 10632;
    $n  = (int)(($jd - 1) / 10631);
    $jd = $jd - 10631 * $n + 354;
    $j  = ((int)((10985 - $jd) / 5316)) *
        ((int)(50 * $jd / 17719)) +
        ((int)($jd / 5670)) *
        ((int)(43 * $jd / 15238));
    $jd = $jd - ((int)((30 - $j) / 15)) *
        ((int)((17719 * $j) / 50)) -
        ((int)($j / 16)) *
        ((int)((15238 * $j) / 43)) + 29;
    $m  = (int)(24 * $jd / 709);
    $d  = $jd - (int)(709 * $m / 24);
    $y  = 30*$n + $j - 30;

    return array($m, $d, $y);
}

# Hijri To Julian Day Count
private function HijriToJD($m, $d, $y){
    return (int)((11 * $y + 3) / 30) +
        354 * $y + 30 * $m -
        (int)(($m - 1) / 2) + $d + 1948440 - 385;
}

}// end class Hijri Page  
?>  

Сведения о коде: я создал класс контроллера в codeigniter и хочу только сегодняшнюю дату в хиджрах, например, в формате json,

{"hijridate":"18 Jumada al-Ukhra 1440"}

Однако он не отображается должным образом , Пожалуйста, помогите мне. Я не эксперт в codeigniter: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...