نمایش نتایج 1 تا 3 از 3

نام تاپیک: شمسی سازی تاریخ

  1. #1

    شمسی سازی تاریخ

    درود

    من از یک اسکریپت برای سایتم استفاده میکنم و متاسفانه با زبان PHP هم زیاد کارنکردم و مبتدی هستم.
    یه تابع برای تاریخ و زمان سایتم استفاده شده که من میخوام به شمسی تبدیلش کنم کدش رو میزارم اینجا اگر دوستان کمک کنن ممنون میشم.

    function get_date($date, $format = "date")
    {
    global $SESSION, $LANG;

    if ( $format == "human" ) {
    $now = time();
    $now_day = date("j", $now);
    $now_month = date("n", $now);
    $now_year = date("Y", $now);

    $time_day = date("j", $date);
    $time_month = date("n", $date);
    $time_year = date("Y", $date);
    $time_since = "";

    switch (1)
    {
    case ( $now-$date < 60 ): // seconds
    $seconds = $now-$date;
    $time_since = $seconds;
    $str = str_replace('%time%', $time_since, $LANG['core']['date_seconds']);
    break;
    case ( $now-$date < 3600 ): // minutes (60)
    $minutes = round(($now-$date)/60);
    $time_since = $minutes;
    $str = str_replace('%time%', $time_since, $LANG['core']['date_minutes']);
    break;
    case ( $now-$date < 86400 ): // hours (24)
    $hours = round(($now-$date)/3600);
    $time_since = $hours;
    $str = str_replace('%time%', $time_since, $LANG['core']['date_hours']);
    break;
    case ( $now-$date < 172800 ): // yesterday
    $hours = round(($now-$date)/3600);
    $time_since = $hours;
    $str = $LANG['core']['date_yesterday'];
    break;
    case ( $now-$date < 1209600 ): // days (14)
    $days = round(($now-$date)/86400);
    $time_since = $days;
    $str = str_replace('%time%', $time_since, $LANG['core']['date_days']);
    break;
    case ( $now-$date < 4233600 ): // weeks (5)
    $weeks = round(($now-$date)/604800);
    $time_since = $weeks;
    $str = str_replace('%time%', $time_since, $LANG['core']['date_weeks']);
    break;
    case ( $now-$date < 47520000 ): // months (18)
    $time_since = round(($now-$date)/2628000);
    $str = str_replace('%time%', $time_since, $LANG['core']['date_months']);
    break;
    default: // years
    if ( $now_month < $time_month ) {
    $subtract = 1;
    }
    elseif ( $now_month == $time_month ) {
    if ( $now_day < $time_day ) {
    $subtract = 1;
    }
    else {
    $subtract = 0;
    }
    }
    else {
    $subtract = 0;
    }
    $years = $now_year-$time_year-$subtract;
    $time_since = $years;
    $str = str_replace('%time%', $time_since, $LANG['core']['date_years']);
    if ( $years == 0 ) {
    $time_since = "";
    $lang_var = 0;
    }
    break;
    }
    }
    else
    {
    $diff = $SESSION->conf['timezone']*60;
    $date = $date - (date("Z") - $diff) + (date("I") ? 3600 : 0);

    if ( $format == "date" ) {
    $format = $SESSION->conf['timeformat'] ? "m/d/Y" : "d/m/Y";
    }
    elseif ( $format == "time" ) {
    $format = $SESSION->conf['timeformat'] ? "h:i a" : "H:i";
    }
    elseif ( $format == "rss" ) {
    $format = "r";
    }
    elseif ( $format == "full" ) {
    $format = $SESSION->conf['timeformat'] ? "m/d/Y h:i a" : "d/m/Y H:i";
    }
    $str = date($format, $date);
    }

    return $str;
    }

  2. #2
    کاربر دائمی آواتار nemo php
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    مهاجرت به تهران
    پست
    139

    نقل قول: شمسی سازی تاریخ

    برای تبدیل تاریخ میلادی به شمسی
    از این تابع ها استفاده کن


    function gregorian_to_jalali ($g_y, $g_m, $g_d)
    {
    $g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    $j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
    $gy = $g_y-1600;
    $gm = $g_m-1;
    $gd = $g_d-1;
    $g_day_no = 365*$gy+$this->div($gy+3,4)-$this->div($gy+99,100)+$this->div($gy+399,400);
    for ($i=0; $i < $gm; ++$i)
    $g_day_no += $g_days_in_month[$i];
    if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
    /* leap and after Feb */
    $g_day_no++;
    $g_day_no += $gd;
    $j_day_no = $g_day_no-79;
    $j_np = $this->div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */
    $j_day_no = $j_day_no % 12053;
    $jy = 979+33*$j_np+4*$this->div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */
    $j_day_no %= 1461;
    if ($j_day_no >= 366) {
    $jy += $this->div($j_day_no-1, 365);
    $j_day_no = ($j_day_no-1)%365;
    }
    for ($i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i)
    $j_day_no -= $j_days_in_month[$i];
    $jm = $i+1;
    $jd = $j_day_no+1;
    return array($jy, $jm, $jd);
    }
    //********************************
    function jalali_to_gregorian($j_y, $j_m, $j_d)
    {
    $g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    $j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
    $jy = $j_y-979;
    $jm = $j_m-1;
    $jd = $j_d-1;
    $j_day_no = 365*$jy + $this->div($jy, 33)*8 + $this->div($jy%33+3, 4);
    for ($i=0; $i < $jm; ++$i)
    $j_day_no += $j_days_in_month[$i];
    $j_day_no += $jd;
    $g_day_no = $j_day_no+79;
    $gy = 1600 + 400*$this->div($g_day_no, 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
    $g_day_no = $g_day_no % 146097;
    $leap = true;
    if ($g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
    {
    $g_day_no--;
    $gy += 100*$this->div($g_day_no, 36524); /* 36524 = 365*100 + 100/4 - 100/100 */
    $g_day_no = $g_day_no % 36524;
    if ($g_day_no >= 365)
    $g_day_no++;
    else
    $leap = false;
    }
    $gy += 4*$this->div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */
    $g_day_no %= 1461;
    if ($g_day_no >= 366) {
    $leap = false;
    $g_day_no--;
    $gy += $this->div($g_day_no, 365);
    $g_day_no = $g_day_no % 365;
    }
    for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)
    $g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);
    $gm = $i+1;
    $gd = $g_day_no+1;
    return array($gy, $gm, $gd);
    }

    }


  3. #3

    نقل قول: شمسی سازی تاریخ

    ممنون ولی من زبان php مبتدی هستم اگر لطف کنید ادیت کنید ممنون میشم.
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. سوال: شمسی سازی(جلالی) تاریخ ها
    نوشته شده توسط mahdi.iqu در بخش PHP
    پاسخ: 11
    آخرین پست: جمعه 13 اردیبهشت 1392, 17:43 عصر
  2. سوال: تاریخ شمسی سازی
    نوشته شده توسط sinashahab در بخش PHP
    پاسخ: 1
    آخرین پست: سه شنبه 13 مهر 1389, 13:57 عصر
  3. کنترل جدول با قابلیت مرتب سازی تاریخ شمسی
    نوشته شده توسط vahidiran در بخش VB.NET
    پاسخ: 1
    آخرین پست: پنج شنبه 30 آذر 1385, 10:22 صبح
  4. شمسی کردن تاریخ ویندوز XP
    نوشته شده توسط nasr در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: یک شنبه 17 خرداد 1383, 23:18 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •