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

نام تاپیک: تبدیل تاریخ میلادی به شمسی

  1. #1

    تبدیل تاریخ میلادی به شمسی

    این تابع سه پارامتر دارد :
    1- پارامتر اول در صورتی که true باشد روز به صورت حروفی نمایش داده خواهد شد .
    2- پارامتر دوم به صورت پیش فرض برابر با Alpha و نشان دهنده این است که ماه به صورت حروفی نمایش داده شود و غیر از این مقدار به صورت عددی نمایش داده خواهد شد .
    3- پارامتر سوم در صورتی که وجود داشته باشد می تواند یک تاریخ میلادی با فرمت yy-mm-dd باشد تا در خروجی به شمسی تبدیل گردد . (تاریخ جاری نمایش داده نخواهد شد!)


    function showDate($W=true,$M='alpha',$ufDate="none")
    {
    $week = array('یکشنبه','دوشنبه','سه شنبه','چهارشنبه','پنج شنبه','جمعه','شنبه');
    if($M == 'alpha') $months = array('فروردین','اردیبهشت','خرد د','تیر','مرداد','شهریور','مهر' ,'آبان','آذر','دی','بهمن','اسفند ');
    else $months = array("1","2","3","4","5","6","7","8","9","10","11 ","12");

    if($ufDate != "none"){
    $ufd = explode("-",$ufDate);
    $d = '';
    $day= $ufd[0];
    $month = $ufd[1];
    $year= $ufd[2];
    }else{
    $year = date('y');
    $month = date('m');
    $d = date('w');
    $day = date('d');
    }

    $year = ($year== 0)?2000:$year;
    ($year<1000)? ($year += 2000):true;

    $year -= ( ($month < 3) || (($month == 3) && ($day < 21)) )? 622:621;

    switch ($month)
    {
    case 1: if($day<21){$month=10;$day+=10;}else{$month=11;$da y-=20;} break;
    case 2: if($day<20){$month=11;$day+=11;}else{$month=12;$da y-=19;} break;
    case 3: if($day<21){$month=12;$day+=9;}else{$month=1;$day-=20;} break;
    case 4: if($day<21){$month=1;$day+=11;}else{$month=2;$day-=20;} break;
    case 5:
    case 6: if($day<22){$month-=3;$day+=10;}else{$month-=2;$day-=21;} break;
    case 7:
    case 8:
    case 9: if($day<23){$month-=3;$day+=9;}else{$month-=2;$day-=22;} break;
    case 10:if($day<23){$month=7;$day+=8;}else{$month=8;$da y-=22;} break;
    case 11:
    case 12:if($day<22){$month-=3;$day+=9;}else{$month-=2;$day-=21;} break;
    default:
    break;
    }

    if($W == true)
    return $week[$d].' '.$day.' '.$months[$month-1].' '.$year;
    else if($w != true){
    if($M == 'alpha') return '<p dir="rl">'.$day.' '.$months[$month-1].' '.$year.'</p>';
    else return $year.'-'.$month.'-'.$day;
    }
    }


    استفاده از این تابع بدون پارامتر تاریخ جاری را به صورت "مثال : پنجشنبه 1 فروردین 1387" نشان خواهد داد .

  2. #2
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    این تقویم اشتباه است، حداقل برای سه ماه توی سال های کبیسه و اون سالی که سی و خورده ای سال اضافه میشه خراب کار می‌کنه.
    انجمن رو جستجو کن، قبلا کدهای درستی در انجمن بازمتن منتشر شده.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  3. #3
    کاربر دائمی آواتار majoran
    تاریخ عضویت
    آبان 1385
    محل زندگی
    شیراز
    پست
    339
    آقا اگه ممکنه تاریخ قمری رو هم برای ما قرار بدین متشکر میشم

  4. #4
    نقل قول نوشته شده توسط oxygenws مشاهده تاپیک
    این تقویم اشتباه است، حداقل برای سه ماه توی سال های کبیسه و اون سالی که سی و خورده ای سال اضافه میشه خراب کار می‌کنه.
    انجمن رو جستجو کن، قبلا کدهای درستی در انجمن بازمتن منتشر شده.

    این تقویم رو بنده 3 ساله که دارم استفاده و تست می کنم و در هیچ موردی با اشکال رو به رو نبوده . اگه لطف کنید لینک مطلبی رو که می گین بدین ممنون می شم .

  5. #5
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    این تقویم رو بنده 3 ساله که دارم استفاده و تست می کنم و در هیچ موردی با اشکال رو به رو نبوده . اگه لطف کنید لینک مطلبی رو که می گین بدین ممنون می شم .
    احتمالا می‌دونی که هر ۴ سال کبیسه می‌شه و احتمالا می‌دونی که سال دیگه کبیسه است؟! پس منتظر یک انقلاب باش :)
    https://barnamenevis.org/showthread.php?t=69042
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  6. #6
    قبل از هر چیز از اظهار نظر و کمک شما خیلی ممنونم
    اما احتمالا می دونید که 3 سال پیش سال کبیسه بوده و از اون مهم تر اینکه مطمئنا شما تا حالا این کد رو در یک سال کبیسه تست نکردید و صرف اینکه شما هم فقط شنیدین سندیتی نمی تونه داشته باشه .
    اما لینکی که دایدن رو من دیدم غیر از یک مورد که به وجود باگ اشاره شده مطلب دیگه ای نبود که مرتبط با موضوع باشه و البته در اون یک مورد هم فقط به وجودش اشاره شده و حالا چی هست الله اعلم .
    والبته مطلبی دیدم که ظاهرا این کد متعلق به شخص خاصی معرفی شده بود که این هم صحت نمی تونه داشته باشه چرا که این سورس رو بنده اولین بار حدود 3 سال پیش به زبان جاوا اسکریپت دیدم و خودم به PHP بر گردوندم و تا حالا 3 الی 4 بار هم ویرایش شده و باز هم خواهد شد تا به نتیجه مطلوب برسه

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

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