واضح آرشیو وب فارسی:سایت ریسک: View Full Version : مشکل با تاریخ شمسی در php pv200506-07-2008, 04:19 PMمن می خواستم تاریخ شمسی امروز رو در mysql ثبت کنم و بتوانم مجددا آن را بازخوانی کنم ولی تاریخ فقط میلادی ذخیره می شه. نمی دونم چی کار کنم! از شبیه ساز wamp server استفاده می کنم. اساتید محترم! خواهشن راهنمایی کنن. ممنون می شم. pv200507-07-2008, 10:40 AMکسی نیست کمک کنه. شدیدا بهش نیاز دارم. اگه بشه تاریخو میلادی ذخیره کرد و هنگام بازخوانی به شمسی تبدیل کرد هم خوبه. neopersia07-07-2008, 08:54 PMشما کجاش مشکل دارید؟ برای تاریخ میلادی به راحتی هر چه تمامتر میشه از تابع date استفاده کرد البته بهتره زمان رو به صورت timestamp ذخیره کنید که تو php با تابع ()time قابل دسترسیه از طریق mysql هم میشه با ()UNIX_TIMESTAMP زمان رو ذخیره کرد برای بازخوانی هم که مثل سایر اطلاعات هست و فقط باید بعد از بازخوانی اونو به فرمت دلخواهتون تبدیل کنید حالا یا با تابع date برای تاریخ میلادی و یا توابع مبدل میلادی به شمسی zibatarin nam07-07-2008, 09:43 PMمن می خواستم تاریخ شمسی امروز رو در mysql ثبت کنم و بتوانم مجددا آن را بازخوانی کنم ولی تاریخ فقط میلادی ذخیره می شه. نمی دونم چی کار کنم! از شبیه ساز wamp server استفاده می کنم. اساتید محترم! خواهشن راهنمایی کنن. ممنون می شم. فکر کنم این کمکت کنه !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! masoud_razor10-07-2008, 10:44 PMتابع های تبدیل تاریخ شمسی به میلادی و برعکس <?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: // // !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! // function div($a,$b) { return (int) ($a / $b); } 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+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) { $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 + 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); } ?> سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 992]