محاسبه تعداد روزهای باقیمانده بین دو تاریخ

abbasjoon

Member
سلام.
من از تابه mktime استفاده کردم
ابتدا با استفاده از
PHP:
  $NowDate=mktime(0,0,0,$Month,$Day,$Year);
تعداد ثانیه های زمان اول رو که زمان حال هستش رو بدست آوردم.
برای زمان دوم هم همین کارو کردم. یعنی
PHP:
   $Expired=mktime(0,0,0,$Month,$Day,$Year);

بعدا زمان دوم از زمان اول رو کم کردم و تقسیم به تعداد ثانیه های هر 24 ساعت کردک اینتوری:
PHP:
	$RemainInSecond=$Expired-$NowDate;	
	$RemainInDay=$RemainInSecond / 86400;
ولی نتیجه چیز عجیب غریبی رو نشون می ده. مثلا 500 یا 11111000000 .
این رو هم بگم که فرمت تاریخا هر دو
PHP:
date("y.n.d");
هستند.
به نظر شما اشکال از کجاست؟
 

tabib_m

Member
منطق کار تقریبا درسته.
( به خاطر این میگم «تقریبا», چون تقسیم نهاییت خورده میاره, بهتره جزء صحیحش محاسبه بشه:) )

شما اگر کد کامل, و ورودی هایی که استفاده میکنی رو بذاری, میشه تست کرد و اشکالش رو در آورد. (اگر کد همین باشه, احتمالا ورودی هایی که به توابع میدی, مشکل داشته باشن.)

موفق باشید.
 

firebird

Member
اینو من از php cookbook ورداشتم
PHP:
<?php
// 7:32:56 pm on May 10, 1965
$epoch_1 = mktime(19,32,56,5,10,1965);
// 4:29:11 am on November 20, 1962
$epoch_2 = mktime(4,29,11,11,20,1962);

$diff_seconds  = $epoch_1 - $epoch_2;
$diff_weeks    = floor($diff_seconds/604800);
$diff_seconds -= $diff_weeks   * 604800;
$diff_days     = floor($diff_seconds/86400);
$diff_seconds -= $diff_days    * 86400;
$diff_hours    = floor($diff_seconds/3600);
$diff_seconds -= $diff_hours   * 3600;
$diff_minutes  = floor($diff_seconds/60);
$diff_seconds -= $diff_minutes * 60;

print "The two dates have $diff_weeks weeks, $diff_days days, ";
print "$diff_hours hours, $diff_minutes minutes, and $diff_seconds ";
print "seconds elapsed between them.";
?>
 

جدیدترین ارسال ها

بالا