function jdate($format, $timestamp = '', $none = '', $time_zone = 'Asia/Tehran', $tr_num = 'fa') { $T_sec = '0'; /* <= رفع خطای زمان سرور ، با اعداد '+' و '-' بر حسب ثانیه */ if ($time_zone == '') { $time_zone = 'Asia/Tehran'; } date_default_timezone_set($time_zone); $ts = ($timestamp == '' or $timestamp == 'now') ? time() + $T_sec : tr_num($timestamp) + $T_sec; $date = explode('_', date('a_d_m_N_w_Y', $ts)); list($j_y, $j_m, $j_d) = jgregorian_to_jalali($date[5], $date[2], $date[1]); $doy = $j_m < 7 ? ($j_m - 1) * 31 + $j_d - 1 : ($j_m - 7) * 30 + $j_d + 185; $kab = $j_y % 4 == 3 ? 1 : 0; $out = ''; for ($i = 0; $i < strlen($format); $i++) { $sub = substr($format, $i, 1); if ($sub == '\\') { $out .= substr($format, $i + 1, 1); $i++; } switch ($sub) { case 'C': case 'E': case 'R': case 'x': case 'X': $out .= '<a href="http:/ /jdf.scr.ir/">دریافت نسخه ی جدید http://jdf.scr.ir</a>'; break; case '\\': $out .= ''; break; case 'B': case 'e': case 'g': case 'G': case 'h': case 'H': case 'i': case 'I': case 'O': case 'P': case 's': case 'T': case 'u': case 'Z': /* */ $out .= date($sub, $ts); break; case 'a': $out .= $date[0] == 'pm' ? 'ب.ظ' : 'ق.ظ'; break; case 'A': $out .= $date[0] == 'pm' ? 'بعد از ظهر' : 'قبل از ظهر'; break; case 'b': $out .= ceil($j_m / 3); break; case 'c': $out .= jdate('Y/n/j ,H:i:s P', $ts, '', $time_zone, $tr_num); break; case 'd': $out .= $j_d < 10 ? '0' . $j_d : $j_d; break; case 'D': $key = array('ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'); $out .= $key[$date[4]]; break; case 'f': $key = array('بهار', 'تابستان', 'پاییز', 'زمستان'); $out .= $key[ceil($j_m / 3) - 1]; break; case 'F': $key = array('فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'); $out .= $key[$j_m - 1]; break; case 'j': $out .= $j_d; break; case 'J': $key = array('یک', 'دو', 'سه', 'چهار', 'پنج', 'شش', 'هفت', 'هشت', 'نه', 'ده', 'یازده', 'دوازده', 'سیزده', 'چهارده', 'پانزده', 'شانزده', 'هفده', 'هجده', 'نوزده', 'بیست', 'بیست و یک', 'بیست و دو', 'بیست و سه', 'بیست و چهار', 'بیست و پنج', 'بیست و شش', 'بیست و هفت', 'بیست و هشت', 'بیست و نه', 'سی', 'سی و یک'); $out .= $key[$j_d - 1]; break; case 'k': $out .= 100 - round($doy / ($kab + 365) * 100, 1); break; case 'K': $out .= round($doy / ($kab + 365) * 100, 1); break; case 'l': $key = array('یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'); $out .= $key[$date[4]]; break; case 'L': $out .= $kab; break; case 'm': $out .= $j_m < 10 ? '0' . $j_m : $j_m; break; case 'M': $key = array('فر', 'ار', 'خر', 'تی', 'مر', 'شه', 'مه', 'آب', 'آذ', 'دی', 'به', 'اس'); $out .= $key[$j_m - 1]; break; case 'n': $out .= $j_m; break; case 'N': $out .= $date[3] != 7 ? $date[3] + 1 : 1; break; case 'o': $jdw = jdate('w', $ts, '', $time_zone, 'en'); $dny = 364 + $kab - $doy; $out .= ($doy < 3 and $jdw > $doy + 3) ? $j_y - 1 : (($dny < 3 and 3 - $dny > $jdw) ? $j_y + 1 : $j_y); break; case 'p': $key = array('حمل', 'ثور', 'جوزا', 'سرطان', 'اسد', 'سنبله', 'میزان', 'عقرب', 'قوس', 'جدی', 'دلو', 'حوت'); $out .= $key[$j_m - 1]; break; case 'q': $key = array('مار', 'اسب', 'گوسفند', 'میمون', 'مرغ', 'سگ', 'خوک', 'موش', 'گاو', 'پلنگ', 'خرگوش', 'نهنگ'); $out .= $key[$j_y % 12]; break; case 'Q': $out .= $kab + 364 - $doy; break; case 'r': $out .= jdate('H:i:s O l, j F Y', $ts, '', $time_zone, $tr_num); break; case 'S': $out .= 'ام'; break; case 't': $out .= $j_m != 12 ? 31 - (int) ($j_m / 6.5) : $kab + 29; break; case 'U': $out .= $ts; break; case 'v': $xy3 = substr($j_y, 2, 1); $xy34 = substr($j_y, 2, 2); $xy4 = substr($j_y, 3, 1); $h3 = $h34 = $h4 = ''; if ($xy3 == 1) { $p34 = ''; $k34 = array('ده', 'یازده', 'دوازده', 'سیزده', 'چهارده', 'پانزده', 'شانزده', 'هفده', 'هجده', 'نوزده'); $h34 = $k34[$xy34 - 10]; } else { $p34 = ($xy3 == 0 or $xy4 == 0) ? '' : ' و '; $k3 = array('', '', 'بیست', 'سی', 'چهل', 'پنجاه', 'شصت', 'هفتاد', 'هشتاد', 'نود'); $h3 = $k3[$xy3]; $k4 = array('', 'یک', 'دو', 'سه', 'چهار', 'پنج', 'شش', 'هفت', 'هشت', 'نه'); $h4 = $k4[$xy4]; } $out .= $h3 . $p34 . $h34 . $h4; break; case 'V': $xy12 = substr($j_y, 0, 2); $xy34 = substr($j_y, 2, 2); $n12 = array('00', '13', '14'); $k12 = array('', 'هزار و سیصد', 'هزار و چهارصد'); $h12 = str_ireplace($n12, $k12, $xy12); $p23 = $xy34 == '00' ? '' : ' و '; $h34 = jdate('v', $ts, '', $time_zone); $out .= $h12 . $p23 . $h34; break; case 'w': $out .= $date[4] != 6 ? $date[4] + 1 : 0; break; case 'W': $avs = jdate('w', $ts - $doy * 86400, '', $time_zone, 'en'); $num = (int) (($doy + $avs) / 7); if ($avs < 4) { $num++; } elseif ($num < 1) { $num = ($avs == ($j_y % 4 == 0 ? 5 : 4) or $avs == 4) ? 53 : 52; } $aks = $avs + $kab; if ($aks == 7) { $aks = 0; } $out .= ($aks < 3 and $kab + 363 - $doy < $aks) ? '01' : ($num < 10 ? '0' . $num : $num); break; case 'y': $out .= substr($j_y, 2, 2); break; case 'Y': $out .= $j_y; break; case 'z': $out .= $doy; break; default: $out .= $sub; } } return ($tr_num == 'fa' or $tr_num == '') ? tr_num($out, 'fa') : $out; }
} else { $date_ta2 = ''; $ta_fa_next = ''; $ta_fa_pre = ''; } if ($_SESSION['aztarikh']) { $arr_az = explode('/', $_SESSION['aztarikh']); $date_az = date_create(jalali_to_jgregorian($arr_az[0], $arr_az[1], $arr_az[2], '-')); $date_az2 = date_create(jalali_to_jgregorian($arr_az[0], $arr_az[1], $arr_az[2], '-')); //var_dump($date_az); $az_next = date_format($date_az->modify('+1 day'), 'Y-m-d'); $az_pre = date_format($date_az->modify('-2 day'), 'Y-m-d'); $arr_fa_pre = explode('-', $az_pre); $az_fa_pre = jgregorian_to_jalali($arr_fa_pre[0], $arr_fa_pre[1], $arr_fa_pre[2], '/'); $arr_fa_next = explode('-', $az_next); $az_fa_next = jgregorian_to_jalali($arr_fa_next[0], $arr_fa_next[1], $arr_fa_next[2], '/'); } else { $az_fa_next = ''; $az_fa_pre = ''; } $tmpp = ''; if (isset($_REQUEST['adult'])) { $res = new reserve_class(); $adl = (int) $_REQUEST['adult']; $chd = (int) $_REQUEST['child']; $inf = (int) $_REQUEST['inf']; $class_ghimat = $_REQUEST['class_ghimat']; $ip = getenv("REMOTE_ADDR"); if (!$ip) { $ip = $_SERVER['REMOTE_ADDR']; }
public function handleResult($result) { $res = simplexml_load_string($result); $flights = array(); $flight_extras = array(); $specific_fields = array(); //print_r($res); if (isset($res->Errors)) { return FALSE; } $priced_itineraries = $res->PricedItineraries->PricedItinerary; if (isset($priced_itineraries)) { foreach ($priced_itineraries as $priced_itinerary) { var_dump($priced_itinerary); $flight_segment = $priced_itinerary->AirItinerary->OriginDestinationOptions->OriginDestinationOption->FlightSegment; $flight_attr = $flight_segment->attributes(); $departure = str_replace("T", " ", $flight_attr->DepartureDateTime); $dep = explode(" ", $departure); list($dep_year, $dep_month, $dep_day) = explode('-', $dep[0]); list($dep_year, $dep_month, $dep_day) = jgregorian_to_jalali($dep_year, $dep_month, $dep_day); $dep_month = str_pad($dep_month, 2, 0); $dep_day = str_pad($dep_day, 2, 0); $dep_date = $dep_year . '-' . $dep_month . '-' . $dep_day; $arrival = str_replace("T", " ", $flight_attr->ArrivalDateTime); $duration = (strtotime($arrival) - strtotime($departure)) / 60; $ltime = explode(" ", $arrival); $ltime = $ltime[1]; // $book_class=$flight_segment->BookingClassAvails->BookingClassAvail->attributes(); $from = $flight_segment->DepartureAirport->attributes(); $to = $flight_segment->ArrivalAirport->attributes(); $flight_class = $flight_segment->BookingClassAvails->BookingClassAvail->attributes(); // if(!isset($flight_class->ResBookDesigCode)) continue; //var_dump($flight_class); // if(is_object($flight_class) && $flight_class->ResBookDesigQuantity!=0){ echo "\n COUNT :: " . @count($flight_segment->BookingClassAvails->children()) . "\n"; if (!empty($flight_segment->BookingClassAvails) && $flight_class->ResBookDesigQuantity != 0) { $flights[] = array('agency_id' => 0, 'flight_number' => $flight_attr->FlightNumber, 'flight_id' => 0, 'from' => $from->LocationCode, 'to' => $to->LocationCode, 'capacity' => $flight_class->ResBookDesigQuantity, 'fdate' => $dep_date, 'ftime' => $dep[1], 'ltime' => $ltime, 'class_ghimat' => $flight_class->ResBookDesigCode, 'class' => '1', 'typ' => 1, 'agency_name' => 'Meraj', 'agency_site' => 'http://www.merajairlines.ir', 'source_id' => $this->_source_id); $equip = $flight_segment->Equipment->attributes(); $base_fare = $priced_itinerary->AirItineraryPricingInfo->ItinTotalFare->BaseFare->attributes(); $taxes = array(); $taxes = $priced_itinerary->AirItineraryPricingInfo->PTC_FareBreakdowns->PTC_FareBreakdown->PassengerFare->Taxes->Tax; $sum_tax = 0; if (isset($taxes) && is_array($taxes)) { foreach ($taxes as $tax) { $sum_tax += $tax; } } $flight_extras[] = array('airline' => 'Meraj', 'airplane' => $equip->AirEquipType, 'description' => '', 'extra' => 0, 'excurrency' => '', 'extrad' => '', 'public' => '', 'poursant' => '', 'day' => '', 'add_price' => '', 'no_public' => '', 'open_price' => '', 'open_price_currency' => '', 'bfid' => '', 'target_capa' => '', 'price' => $base_fare->Amount, 'currency' => $this->currency($base_fare->CurrencyCode), 'tax' => $sum_tax, 'taxd' => '', 'source_id' => $this->_source_id, 'tell_time' => 60); $dep_term = $flight_segment->DepartureAirport->attributes(); $avl_term = $flight_segment->ArrivalAirport->attributes(); $opr_aL = $flight_segment->OperatingAirline->attributes(); $total_fare = $priced_itinerary->AirItineraryPricingInfo->ItinTotalFare->TotalFare->attributes(); $specific_fields[] = array('ResBookDesigCode' => $flight_attr->ResBookDesigCode, 'ArrivalDateTime' => $flight_attr->ArrivalDateTime, 'StopQuantity' => $flight_attr->StopQuantity, 'RPH' => $flight_attr->RPH, 'DepartureTerminal' => $dep_term->Terminal, 'ArrivalTerminal' => $avl_term->Terminal, 'OperatingAirline' => $opr_aL->Code, 'BaseFareDecimalPlaces' => $base_fare->DecimalPlaces, 'TotalFareCurrencyCode' => $total_fare->CurrencyCode, 'TotalFareDecimalPlaces' => $total_fare->DecimalPlaces, 'TotalFareAmount' => $total_fare->Amount, 'currency' => $base_fare->CurrencyCode, 'DepartureDateTime' => $flight_attr->DepartureDateTime, 'ArrivalAirportArr' => $flight_attr->ArrivalAirportArr, 'AirEquipType' => $equip->AirEquipType, 'BaseFare' => $base_fare->Amount, 'TotalFare' => $total_fare->Amount); } } } return array('flights' => $flights, 'flight_extras' => $flight_extras, 'specific_fields' => $specific_fields); }
if (isset($_GET['tatarikh']) && $_GET['tatarikh']) { $ta_fa_next = ''; $dtmp = explode('/', $_REQUEST['tatarikh']); $mtmp = jalali_to_jgregorian($dtmp[0], $dtmp[1], $dtmp[2], '-'); $current_ta_date = new DateTime($mtmp); $current_en_ta_currentdate_str = $current_ta_date->format('Y-m-d'); $arr_currentday = explode('-', $current_en_ta_currentdate_str); $current_fa_ta_str = jgregorian_to_jalali($arr_currentday[0], $arr_currentday[1], $arr_currentday[2], '/'); $current_ta_date->add(new DateInterval('P1D')); $next_en_ta_str = $current_ta_date->format('Y-m-d'); $arr_nextday = explode('-', $next_en_ta_str); $next_fa_ta_str = jgregorian_to_jalali($arr_nextday[0], $arr_nextday[1], $arr_nextday[2], '/'); $current_ta_date->sub(new DateInterval('P2D')); $pre_en_ta_str = $current_ta_date->format('Y-m-d'); $arr_preday = explode('-', $pre_en_ta_str); $pre_fa_ta_str = jgregorian_to_jalali($arr_preday[0], $arr_preday[1], $arr_preday[2], '/'); } else { $pre_fa_ta_str = ''; $next_fa_ta_str = ''; $current_fa_ta_str = ''; } var_dump($results_tmp); exit; //if (isset($results_tmp[0]['err']['code']) && $results_tmp[0]['err']['code'] == 1 && $results_tmp[0]['err']['msg'] != '') {//proccesing state // //check if data recived ? // echo json_encode(array( // $results_tmp[0]['err'] // )); //} else if (isset($results_tmp[0]['err']['code']) && $results_tmp[0]['err']['code'] == 1 && $results_tmp[0]['err']['msg'] == '') { // fail state