• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استخراج تاریخ 100 سال بعد
#1
سلام دوستان بنده در نظر دارم تاریخ زمانهای دور آینده رامحاسبه کنم مثلا زمان بازنشستگی یک کارمند تازه استخدام شده که میشه سی سال بعد ولی از اونجایی که سیستمم 32 بیتی هست. و متغیر 32 بیتی محدودیت داره تا یک تاریخ خاص را میشه باهاش محاسبه کرد میخام بدونم آیا تابع یا کلاسی هست که بشه در همین سیستم 32 بیتی مشکل را حل کرد؟ کدم را بشکل زیر مینویسم ولی کار نمیکنه در واقع تعداد کاراکترهای داخل متغیر بیشتر از گنجایش سیستم 32 بیتی میشه؟
کد پی‌اچ‌پی:
$date strtotime("Y/m/d"."+60years");
echo 
jdate("Y/m/d",$date); 
خوب دوستان اون متغیر $date باتوجه به اینکه خروجیش زمان یونیکسه به مشکل میخورم لطفا راهنمایی کنید البته من قبلا هم این سوال را پرسیدم ولی جواب منطقی نگرفتم ممنونم از اساتید محترم.
  پاسخ
تشکر شده توسط :
#2
سلام.
همون طور که خودت گفتی قبلا جوابت رو دادم : https://forum.iranphp.org/Thread-%D8%AA%...8#pid66518
مشکل راه حلی که گفتم چیه؟
  پاسخ
تشکر شده توسط :
#3
دوستان میشه برای من توضیح بدین با وجود اینکه IntlDateFormatter اومده چرا از date و jdate استفاده میکنید؟! Huh
خود برنامه نویس jdate توی همایش php سال پیش خواهش میکرد دیگه ازش استفاده نکنیم...
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : Alaa ayoubsys kasbookar
#4
نقل قول:دوستان میشه برای من توضیح بدین با وجود اینکه IntlDateFormatter اومده چرا از date و jdate استفاده میکنید؟! Huh

تنها دلیلش اینه که کسی حتی اسم این تابع رو هم نشنیده تا چه برسه به کار کردن باهاش ، خب شما لطف کن یه آموزش بذار توی انجمن تا همه استفاده کنن ازش
کسی مثل من که تازه کاره بلد نیست خبTongue
  پاسخ
تشکر شده توسط :
#5
من قبلا هم در مورد این موضوع داخل انجمن توضیح دادم
4 خط کد که آموزش نداره
اینجا رو بخونید.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : kasbookar
#6
(۱۳۹۵ مهر ۱۷, ۱۱:۵۸ ق.ظ)mohammadhosain نوشته: سلام.
همون طور که خودت گفتی قبلا جوابت رو دادم : https://forum.iranphp.org/Thread-%D8%AA%...8#pid66518
مشکل راه حلی که گفتم چیه؟

ممنونم محمد حسین عزیز جواب داد فقط مشکلی که هست نام روز در هفته را چه کنم البته در نظر داشته باشید که نمیتونم از تایم استمپ استفاده کنم و فقط از همین تابعی که فرمودید استفاده کنم حالا نام اون روز در تاریخ بدست اومده را چطور پیدا کنم که مثلا شنبه هست یا جمعه یا....
کد پی‌اچ‌پی:
echo gregorian_to_jalali(date(Y)+68,date(m),date(d)); 
تاریخ بدست اومده جطور نام روز را بدست بیارم
  پاسخ
تشکر شده توسط :
#7
(۱۳۹۵ مهر ۱۷, ۰۵:۱۳ ب.ظ)mohammad.mm540 نوشته: ممنونم محمد حسین عزیز جواب داد فقط مشکلی که هست نام روز در هفته را چه کنم البته در نظر داشته باشید که نمیتونم از تایم استمپ استفاده کنم و فقط از همین تابعی که فرمودید استفاده کنم حالا نام اون روز در تاریخ بدست اومده را چطور پیدا کنم که مثلا شنبه هست یا جمعه یا....
کد پی‌اچ‌پی:
function days($gy,$gm,$gd){
$gd += ($gy 1) * 365 + (int) (($gy 1) / 4) - (int) (($gy 1) / 100) + (int) (($gy 1) / 400);
$_gms = [031, ( (($gyear) % === && ($gyear) % 100 != 0) || ($gyear) % 400 === 0) ? 29 2831303130313130313031];
for (
$m 1$m $gm$m ++) {
    
$gd +=$_gms[$m];
}
return 
$gd;
}

list(
$gy,$gm,$gd,$w)=explode('/',date('Y/m/d/w'));
$w=(days($gy+60,$gm,$gd)-days($gy,$gm,$gd)+$w)%7;

$wNames=[
        
'یک شنبه',
        
'دو شنبه',
        
'سه شنبه',
        
'چهارشنبه',
        
'پنج شنبه',
        
'جمعه',
        
'شنبه',
];

echo 
$wNames[$w]; 
تابع days تعداد روزهای گذشته از مبدا تاریخ میلادی رو بهت میده. ابتدا شما حساب می کنی بین تاریخ فعلی و 60 سال بعد چند روز هست و اون رو با شماره روز در هفته (برای تاریخ فعلی) جمع می کنی و تقسیم بر 7 می کنی تا مشخص بشه چه روزی از هفته است.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان