PDA

View Full Version : دریافت تاریخ شمسی از کاربر و تبدیل آن به میلادی و insert آن به Mysql



php_programmer021
چهارشنبه 18 تیر 1393, 10:45 صبح
با سلام خدمت همه ی دوستان
من می خوام از کاربرم تاریخ شمسی بگیرم تبدیل کنم به میلادی برزیم توی دیتابیس و بعد هنگام نمایش نیز تاریخ شمسی رو به کاربر نمایش بدم؟
تاریخ شمسی رو با استفاده از datapicker میگیرم خروجیش به این حالت می شه 1393/4/25
حالا با استفاده از jdf.php چه جوری اینو تبدیل کنم به میلادی و اینکه وقتی می خوام به کاربرا نمایش بدم چه جوری شمسی نمایشش بدم ؟
تبصره : لطفا عملی جواب بدید من خودم تئوریشو می دونم اما توی بحث پیاده سازیش بصورت عملی گیر کردم خیلی هم سرچ کردم اما نتیجه نگرفتم.
دمتون گرم

foreach
چهارشنبه 18 تیر 1393, 11:58 صبح
برای نمایش باید از تابع jdate استفاده کنید http://jdf.scr.ir/rahnama/?t=jdate
برای تبدیل شمسی به میلادی هم باید از jmktime استفاده کنید http://jdf.scr.ir/rahnama/?t=jmktime

راهنما به صورت کامل در لینک هایی که گذاشتم هست

php_programmer021
پنج شنبه 19 تیر 1393, 09:14 صبح
با سلام
موضوع دقیقا همینجاست که من نمی دونم از اون تابع ها چه جوری باید استفاده کنم .
ممنون میشم اگه کسی با مثال توضیح بده.

مهرداد سیف زاده
پنج شنبه 19 تیر 1393, 09:27 صبح
شما از کاربر تاریخ رو بصورت / میگیرید ابتدا باید جدا سازی اعداد رو انجام بدید بعدش بدید به تابع این تابع هم به شما unix time یا همون time stamp رو میده میتونید بریزید تو دیتابیس و هر موقع خواستید با jdate اون رو به شمسی برگردونید


$str = '1393/4/25';$str_arr = explode('/',$str);
$unix_time = jmktime('','','',$str_arr[0],$str_arr[1],$str_arr[2]);

php_programmer021
پنج شنبه 19 تیر 1393, 10:32 صبح
سلام مهرداد جان
ببینید


require_once('jdf.php');
$date=$_POST['sdate']; //Date example
$str_arr = explode('/',$date);
$unix_time = jmktime(0,0,0,$str_arr[0],$str_arr[1],$str_arr[2]);
echo $unix_time;//اینجا هیچی نمایش داده نمیشود؟


تاریخ شمسی رو ریختم توی متغییر بعداز توی اون متغییر / برداشتم بعد تایم استمپشو با استفاده از jmktime ریختم توی یه متغییر دیگه حالا چه جوری این تایم استمپو توی صفحه نمایش بدم می دونی میخوام فقط تایم استمپو ببینم بعد اینزرتش کنم یه سوال دیگه بعد میتونم با استفاده از همین تایم استمپ محاسبات انجام بدم یعنی اینکه دو تاریخ داشته باشم فاصله ی زمانی ببین انها رو در بیارم

MRmoon
شنبه 21 تیر 1393, 12:16 عصر
درود

یه بار آرایه ی $str_arr رو با print_r نمایش بدین ببینین محتویاتش چیه.

محمد.

php_programmer021
شنبه 21 تیر 1393, 13:49 عصر
درود بر تو
الان این کد به همراه خروجی هاشو


require_once('jdf.php');
$date=$_POST['sdate']; //1393/4/27
$str_arr = explode('/',$date);
$unix_time = jmktime(0,0,0,$str_arr[0],$str_arr[1],$str_arr[2]);
print_r($str_arr);//خروجیش Array ( [0] => 1393 [1] => 4 [2] => 27 )
foreach($str_arr as $arr){
echo $arr;//خروجیش 1393427
}
echo '</br>';
$jjs =jalali_to_gregorian($str_arr[0],$str_arr[1],$str_arr[2]);
foreach($jjs as $jj){
echo $jj; //خروجیش 2014718
}

دریافت تاریخ شمسی مشکل نداره
اما وقتی تبدیلش می کنم به میلادی تاریخ میلادی رو اشتباه می کنه تاریخ 27/4/1293 رو 18/7/2014 تبدیل می کنه؟
و اینکه چه طور تاریخ میلادی رو به timestampتبدیل کنم با استفاده از jdf
با تشکر

MRmoon
شنبه 21 تیر 1393, 13:52 عصر
درود بر تو
الان این کد به همراه خروجی هاشو


require_once('jdf.php');
$date=$_POST['sdate']; //1393/4/27
$str_arr = explode('/',$date);
$unix_time = jmktime(0,0,0,$str_arr[0],$str_arr[1],$str_arr[2]);
print_r($str_arr);//خروجیش Array ( [0] => 1393 [1] => 4 [2] => 27 )
foreach($str_arr as $arr){
echo $arr;//خروجیش 1393427
}
echo '</br>';
$jjs =jalali_to_gregorian($str_arr[0],$str_arr[1],$str_arr[2]);
foreach($jjs as $jj){
echo $jj; //خروجیش 2014718
}

دریافت تاریخ شمسی مشکل نداره
اما وقتی تبدیلش می کنم به میلادی تاریخ میلادی رو اشتباه می کنه تاریخ 27/4/1293 رو 18/7/2014 تبدیل می کنه؟
و اینکه چه طور تاریخ میلادی رو به timestampتبدیل کنم با استفاده از jdf
با تشکر
درود

شما که تاریخ میلادی رو داری با strtotime تبدیل به timestamp کنش.

محمد.