آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چرا ۱۹ روز از تاریخ کم میکنیم؟

117923  6 سال پیش  6 سال پیش
0 0

یه سوال خیلی توی ذهنمه که با توضیحات استاد متوجهش نشدم اینکه در کد زیر:

 
function toJalali($date, $format = '')
{
$timestamp = strtotime($date);
$theSecondAfterTheDay = 24 * 60 * 60;
$dayPassed = floor($timestamp / $theSecondAfterTheDay);
$days = $dayPassed;
$month = 11;
$year = 1348;

$days -= 19;

$daysInMonths = [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29];
while (true) {
if ($days > $daysInMonths[$month - 1]) {
$days -= $daysInMonths[$month - 1];
$month++;
if ($month == 13) {
$year++;
if (($year - 1347) % 4 == 0) {
$days--;
}
$month = 1;
}
} else {
break;
}
}
echo"$year-$month-$days\n";
}
 

چرا روز های گذشته رو ۱۹ روز کم میکنیم؟

+1 0
سلام در کد بالا خطا دارید ;11 = day$ ;10 = month$ ;1348 = year$ علت کمک کردن ۱۹ روز این است : مبنای شروع محاسبه ی تاریخ میلادی روز اول ماه میلادی(۱۹۷۰/۰۱/۰۱)است که مطابق روز یازدهم ماه جلالی می شود(۱۳۴۸/۱۰/۱۱) برای اینکه شمارش ماه درست انجام شود از مجموع روزهای گذشته ۱۹ روز کم می کنیم تا با مجموع ۱۱ روز دی ماه ، تشکیل یک ماه کامل ۳۰ روزه را بدهند. (6 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
128693  6 سال پیش
0 0

در کد بالا مقدار متغییر day را تعریف و مقدار دهی برابر ۱۱ قرار نداده اید.

چون مبنای محاسبه ماه میلادی ۱۹۷۰/۰۱/۰۱ برابر ۱۳۴۸/۱۰/۱۱ می باشد از مجموع روز های گذشته ۱۹ روز کم می کنیم تا با یازده روز دی ماه تشکیل یک ماه کامل سی روزه را بدهند سپس شمارش ماه ها را از ماه یازده قرار داده اند . رجوع به دقیقه ۲۵ فایل مورد نظر


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .