я использую библиотеку jdate для преобразования григорианской даты в jalali и после разнесения дня и месяца я обнаружил некоторые скрытые символы, добавленные в мою строку, и когда я кодирую их в json, я не могу разобрать их
{
"result": [{
"year": " 1394",
"month": " 6"}, {
"year": " 1394",
"month": " 7"}, {
"year": " 1394",
"month": " 8"}, {
"year": " 1394",
"month": " 9"}, {
"year": " 1394",
"month": " 10"}, {
"year": " 1394",
"month": " 11"}, {
"year": " 1394",
"month": " 12"}, {
"year": " 1395",
"month": " 1"}, {
"year": " 1395",
"month": " 2"}, {
"year": " 1395",
"month": " 3"}, {
"year": " 1395",
"month": " 4"}, {
"year": " 1395",
"month": " 5"}, {
"year": " 1395",
"month": " 6"}, {
"year": " 1395",
"month": " 7"}]
}
я не могу удалить скрытые символы, они помещены в первую строку json, пожалуйста, помогите мне решить эту проблему!
вот мой код:
$termID = (isset($_REQUEST['term_id'])) ? $this->db()->safe($_REQUEST['term_id']) : '';
$sel="SELECT term_id, term_from_date, term_to_date FROM {$this->var->db_perfix}edu_term where term_id=$termID GROUP BY term_id";
$arrFromTo = $this->db()->q($sel);
$arrFromTo[0]->{'term_from_date'} = $this->jdate( "Y-m-j" , strtotime($arrFromTo[0]->{'term_from_date'}) );
$arrFromTo[0]->{'term_to_date'} = $this->jdate( "Y-m-j" , strtotime($arrFromTo[0]->{'term_to_date'}) );
$fromDate = explode('-', $arrFromTo[0]->{'term_from_date'});
$fromYear = $fromDate[0];
$fromMonth = $fromDate[1];
$toDate = explode('-', $arrFromTo[0]->{'term_to_date'});
$toYear = $toDate[0];
$toMonth = $toDate[1];
$count = $toMonth - $fromMonth + 1 + ($toYear - $fromYear)*12 ;
$arrMonth = array();
$arrMonthNum = array();
$yearNum = $fromYear;
$j = 0;
for($i=0 ; $i<=$count ; $i++){
$monthNum = ($fromMonth+$i)%12;
$yearNum += ($monthNum==1)? 1 : 0;
$monthNum = ($monthNum)? $monthNum : 12;
$arrMonth['result'][$j]['year'] .= ($count>=12) ? ' '.$yearNum : '' ;
$arrMonth['result'][$j]['month'] .= ($count>=12) ? ' '.$monthNum : '' ;//$arrMonth['result'][$monthNum."-".$yearNum]['year'] .= ($count>=12) ? ' '.$yearNum : '' ;
// $arrMonth['result'][$monthNum."-".$yearNum]['month'] .= ($count>=12) ? ' '.$monthNum : '' ;
$gregorian = $this->jalali_to_gregorian($yearNum , $monthNum , 1);
$monthDuring = $this->lastday($gregorian[1]+1 , 1 , $gregorian[0]);
$firsDayOfMonth = date("N", mktime(0, 0, 0, $gregorian[1], $gregorian[2] , $gregorian[0]));
$lastDayOfMonth = date("N", mktime(0, 0, 0, $gregorian[1], $gregorian[2]+$monthDuring-1 , $gregorian[0]));
if($firsDayOfMonth==6 or $firsDayOfMonth==7)
$firsDayOfMonth = $firsDayOfMonth-6;
else
$firsDayOfMonth++;
if($lastDayOfMonth==6 or $lastDayOfMonth==7)
$lastDayOfMonth = $lastDayOfMonth-6;
else
$lastDayOfMonth++;
$j++;
}
$a = trim(json_encode($arrMonth,JSON_UNESCAPED_UNICODE),"\x00..\x1F");
echo $a;
Задача ещё не решена.
Других решений пока нет …