ورود

View Full Version : سوال در مورد تاریخ و cron job در codeigniter



thinkdiff
جمعه 22 خرداد 1394, 08:52 صبح
سالم دوستان
من دو سه تا سوال ساده دارم اما تازه یک دوره codeigniter رو تموم کردم و ی جورایی درش تازه واردم. نیاز به کار های زیر دارم اگر امکانش هست ممنون میشم راهنماییم کنید :

1. نمایش تاریخ شمسی و قابلیت تفریق و جمع آن. یعنی مثلا طرق تو سایت بیاد ی درخواستی رو با تاریخ مورد نظر ثبت کنه. مثلا برای 1 هفته دیگه به همراه ساعتش. بعد سیستم بتونه تشخیص بده که تا اون موقع دقیقا چند ساعت مونده. یعنی میشه 7 تا 24 ساعت و خورده ای که میشه زمان واقعی شمسی باقیمانده تا اون موقع.

2. ی چیزی مثلا کرون جاب زدن. میخوام هر ساعت در شنابه روز یک cronjob بزنم یعنی روزی 24 تا که متوجه بشه اون تاریخ سر رسیده یا نه و قبلش به کاربر پیغام بده. راهی که براش پیشنهاد دارم cronjob هست. اما آیا شما پیشنهادی دارین براشت؟ اینم بگم مثلا ی عالمه کاربر هست نه یکی دوتا و این که نبایدم سیستم سنگین شه.

ممنون

plague
جمعه 22 خرداد 1394, 18:33 عصر
چیزایی که میخای ربطی به کد ایگنایتر نداره
در مورد اول توابع date , strtotime رو مطالعه کن با date تاریخ رو به دست میاری
با strtotime میتونی تاریخ رو تبدیل به ثانیه کنی و وقتی تبدیل شد به ثانیه میتونی روش عملیات ریاضی انجام بدی و کم و زیاد کنی بد دوباره تبدیلش کنی به تاریخ ... تمام عملیات و زخیره سازی تاریخ میلادی باید انجام بشه ... فقط موقع نمایش به کاربر با کتابخونه های مجود تبدیل به شمسی کن و نمایش بده

مورد دوم هم همون کرون جاب راهشه
بجای هر ساعه یکبار
بزار هر دقیقه اجرا بشه
اینجوری تعداد کاربر هایی که شامل حالشون میشه کمتره و به سیستم فشار کمتری میاد

thinkdiff
چهارشنبه 22 مهر 1394, 19:23 عصر
ممنون از پاسختون
مرسی

arash_fa
شنبه 12 دی 1394, 20:29 عصر
سلام عزیز.

یک هلپر قرار میدم که اونو در پروژه خود قرار بدید و لود کنید.

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

یک تابع داریم در این هلپز


function pmktime($hour=0,$minute=0,$second=0,$month=0,$day= 0,$year=0,$is_dst=-1){ if($hour==0 && $minute==0 && $second==0 && $month==0 && $day==0 && $year==0) return time(); list($year,$month,$day)=jalali_to_gregorian($year, $month,$day); return mktime($hour,$minute,$second,$month,$day,$year,$is _dst);}

این تابع مقادیر شمسی را میگیرد و به تایم تبدیل میکند

مثال


$year = 1394;
$month=1;
$day=4;
$h=21;
$s=10;
$i=55;

$pmk = pmktime($h,$s,$i,$month,$day,$year); ////

$pmk += (60*60*24) *3;///////////سه روز بعد/////////////

echo pdate('Y/m/d H:s:i',$pmk); ///////نمایش اطلاعات سه روز بعدی////////









در ضمن همیشه برای ذخیره تاریخ در دیتابیس فرمت time ذخیره کند یعنی time() . بعد به شمسی کانورت کن