PDA

View Full Version : سوال: بدست آوردن تاریخ چند روز بعد یا قبل با توجه به تاریخ جاری



ealvandi
یک شنبه 11 مرداد 1388, 19:42 عصر
سلام

میخواستم بدست آوردن تاریخ چند روز بعد یا قبل با توجه به تاریخ جاری توسط Jalali date رو اجام بدم که متاسفانه به مشکلی بر خوردم

آیا دوستان کسی این کار رو تا به حال انجام داده ؟ لطفا کمکم کنید

امیـرحسین
یک شنبه 11 مرداد 1388, 23:44 عصر
توابع جلالی همه مبدل هستند. یعنی تاریخ میلادی رو به شمسی تبدیل می کنند. شما کافیه تاریخ چند روز قبل یا بعد رو به میلادی بدست بیارید و از طریق این توابع شمسی کنید.
برای تغییر تاریخ هم بهترین روش، روش timestamp هست یعنی تعداد ثانیه های مورد نظرتون رو از timestamp فعلی کم کنید. مثلا این timestamp سه روز پیش رو میده و خط بعدیش هم تاریخ کامل سه روز پیش رو:

$threeDaysAgo = time() - (3 * 24 * 60 * 60);
list($year, $month, $day) = explode("-" , date("Y-m-d", $threeDaysAgo));
البته فکر می کنم که منظورتون رو متوجه نشدم.....

ealvandi
دوشنبه 12 مرداد 1388, 00:35 صبح
ممنون از جوابت
به توابع جلالی یک تابع جدید به نام shamsi_date(year,month,day)s اضافه کردم که به ترتیب میشه سال و ماه و روز رو به صورت عددی دلخواه وارد کرد و تا تاریخ جدید برگردانده شه مثلا برای بدست آوردن تاریخ 5 روز دیگه به اینصورت میشه استفاده کرد shamsi_date(0,0,5)s
البته اگر به صورت منفی وارد کنیم تاریخ روز ماه یا سال گذشته رو بر میگردونه

امیدوارم به درد کسی هم بخوره !

alireza_rashvand
سه شنبه 01 آذر 1390, 16:07 عصر
سلام به دوستان ايا برا يc# همچين چيزي داريد در اختيار قرار دهيد

issiran
پنج شنبه 23 فروردین 1397, 20:54 عصر
واقعا عالی بود ! ازتون مچکرم
ی نکته رو خدمت دوستان مبتدی عرض کنم که این کد های بالا از زمان موجود کم میکنه
چنانچه می خوان روز های آینده رو داشته باشند باید - موجود رو به + تبدیل کنن

$threeDaysAgo = time() + (3 * 24 * 60 * 60);
list($year, $month, $day) = explode("-" , date("Y-m-d", $threeDaysAgo));


این هم کدهای کامل

include ('jdf.php');
$timezone = 0;
$now = date("Y-m-d", time()+$timezone);
$time = date("H:i:s", time()+$timezone);
$threeDaysAgo = time() + (3 * 24 * 60 * 60);
list($year, $month, $day) = explode("-" , date("Y-m-d", $threeDaysAgo));
list($hour, $minute, $second) = explode(':', $time);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
$cy = $jalali_date = jdate("Y m d",$timestamp);
echo $cy;
فقط کافیه فایل jdf رو دانلود و کنار فایل php خودشون قرار بدن تا تاریخ فعلی 3 روز جلوتر نمایش داده بشه