اسكريپت تاريخ شمسي به زبان php براي استفاده در html

شروع موضوع توسط sina1808 ‏27 مارس 2004 در انجمن PHP

  1. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    من خيلي دنبالش هستم
    اين جاوا اسكريپت كه يه روز عقبه
    لطفا يه php اش رو معرفي كنيد
    شديدا منتظرم :)
     
  2. خرید بک لینکبازدیدیار - افزایش بازدید سایت و سیگنال های برند
  3. Nicnam

    Nicnam Registered User

    تاریخ عضویت:
    ‏19 دسامبر 2002
    نوشته ها:
    277
    تشکر شده:
    1
    محل سکونت:
    تهران-مشهد (یکی در میون، منگولتینا)
    سينا جان
    اينو نويد مجاهد براي MT نوشته. يه خرده بايد باهاش ور بري.
    کد:
    <?php 
    // "jalali.php" is convertor to and from Gregorian and Jalali calendars. 
    // Copyright (C) 2000 Roozbeh Pournader and Mohammad Toossi 
    // 
    // This program is free software; you can redistribute it and/or 
    // modify it under the terms of the GNU General Public License 
    // as published by the Free Software Foundation; either version 2 
    // of the License, or (at your option) any later version. 
    // 
    // This program is distributed in the hope that it will be useful, 
    // but WITHOUT ANY WARRANTY; without even the implied warranty of 
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
    // GNU General Public License for more details. 
    // 
    // A copy of the GNU General Public License is available from: 
    // 
    // [url]http://www.gnu.org/copyleft/gpl.html[/url] 
    // 
    
    $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); 
    
    
    function gregorian_to_jalali($g_y, $g_m, $g_d) 
    { 
    global $g_days_in_month; 
    global $j_days_in_month; 
    
    $div = create_function('$a,$b','return (int) ($a / $b);'); 
    
    $gy = $g_y-1600; 
    $gm = $g_m-1; 
    $gd = $g_d-1; 
    
    $g_day_no = 365*$gy+$div($gy+3,4)-$div($gy+99,100)+$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 = $div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */ 
    $j_day_no = $j_day_no % 12053; 
    
    $jy = 979+33*$j_np+4*$div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */ 
    
    $j_day_no %= 1461; 
    
    if ($j_day_no >= 366) { 
    $jy += $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) 
    { 
    global $g_days_in_month; 
    global $j_days_in_month; 
    
    $div = create_function('$a,$b','return (int) ($a / $b);'); 
    
    $jy = $j_y-979; 
    $jm = $j_m-1; 
    $jd = $j_d-1; 
    
    $j_day_no = 365*$jy + $div($jy, 33)*8 + $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*$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*$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*$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 += $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); 
    }
    ?>
    
    بعد قسمت "<$MTEntryDate format="%x"$>" را پيدا كنيد و به جاي آن نوشته هاي زير را بنويسيد:
    
    <?
    $week= Array("Thursday" => "پنجشنبه","Saturday" => "شنبه","Sunday" => "يكشنبه","Monday" => "دوشنبه","Tuesday" => "سه شنبه","Wednesday" => "چهارشنبه","Friday" => "جمعه");
    $month = Array("فروردين","ارديبهشت","خرداد","تير","مرداد","شهريور","مهر","آبان","آذر","دي","بهمن","اسفند");
    list( $gyear, $gmonth, $gday ) = preg_split ( '/-/', '<$MTEntryDate format="%Y-%m-%d"$>' );
    list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);
    echo "<div style='direction:rtl'>" . $week["<$MTEntryDate format="%A"$>"] . ", ". $jday . " " . $month[--$jmonth] . " " . $jyear . "</div>"
    ?>
    البته من هيچي PHP بارم نيست. ولي يه چيزي وجود داره به نام مهندسي معكوس و ... ;) كافيه تگ هاي MT رو با تگ هاي اون برنامه مديريت محتوات جايگزين كني. (اصل مطلب)
     
  4. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    سلام و ممنون
    ولي من براي ام تي نميخوام . . .
    براي صفحات معمولي مي خواهم . . .
     
  5. Nicnam

    Nicnam Registered User

    تاریخ عضویت:
    ‏19 دسامبر 2002
    نوشته ها:
    277
    تشکر شده:
    1
    محل سکونت:
    تهران-مشهد (یکی در میون، منگولتینا)
    فرقي نمي كنه كه
    فقط كافيه كدها رو جايگزين كني
     
  6. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    ممنون . . .
    من همون جاوااسكريپت خودم رو دستكاري كردم . . .حالا ديگه تاريخ رو درست نشون ميده
    خيلي ممنون
     
  7. ali.

    ali. کاربر تازه وارد

    تاریخ عضویت:
    ‏21 می 2005
    نوشته ها:
    312
    تشکر شده:
    0
    سينا چه حالي داري يعني 6 ماه به 6 ماه همش يك عدد 1 رو از اين كد كم و زياد ميكني؟
     
  8. miladmovie

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

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    1,936
    تشکر شده:
    2
    این برنامه هم هست : http://jdf.farsiprojects.com
    اسم این MT رو آوردید چقدر از نصبش متنرفم !
     
  9. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    نصبش كه آسونه :) اون جريانه به كجا رسيد ميلاد جان ( جستجو با php ) ؟ :rolleyes:
     
عسل طبیعی و گرده گل ایرانیخدمات پی پال، وسترن یونیون