سلام خسته نباشید
کد بدست اوردن اختلاف زمان (بین دو ساعت ) با ساعت / دقیقه / ثانیه در php میخام
اگر لطف کنید ممنون میشم
7 پاسخ
دیگه تبدیل کردن کار سختی نباید باشه
$time_start = microtime(true);
sleep(3); // 3 sec
$time_end = microtime(true);
//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start);
//$execution_time = number_format($execution_time,3);
//execution time of the script
echo 'Script executed in: <br />'
. round( (($time_end - $time_start)/60), 3) . ' minutes. <br />'
. round( ($time_end - $time_start), 3) . ' seconds. <br />'
. round( (($time_end - $time_start)*1000), 3) . ' milliseconds. <br />'
. round( (($time_end - $time_start)*1000000), 3) . ' microseconds.';
Script executed in:
0.05 minutes.
3 seconds.
3000.27 milliseconds.
3000270.128 microseconds.
سلام.
روش های مختلفی وجود داره
یه مثال:
$start_date = new DateTime('2007-09-01 04:10:58');
$since_start = $start_date->diff(new DateTime('2012-09-11 10:25:00'));
echo $since_start->days.' days total<br>';
echo $since_start->y.' years<br>';
echo $since_start->m.' months<br>';
echo $since_start->d.' days<br>';
echo $since_start->h.' hours<br>';
echo $since_start->i.' minutes<br>';
echo $since_start->s.' seconds<br>';
خروجی:
1837 days total
5 years
0 months
10 days
6 hours
14 minutes
2 seconds
اگر فقط روز رو میخواین کافیه ساعت و دقیقه رو از انتهای تابع پاک کنید.
خیلی ممنون. توی این دستور نمیشه از تاریخ شمسی استفاده کرد ؟؟؟
البته.
[ویرایش شده]
میتونید همون رو بصورت تاریخ شمسی وارد کنید:
$start_date = new DateTime('1372-07-02 04:10:58');
$since_start = $start_date->diff(new DateTime('1397-02-04 10:25:00'));
echo $since_start->days.' days total<br>';
echo $since_start->y.' years<br>';
echo $since_start->m.' months<br>';
echo $since_start->d.' days<br>';
echo $since_start->h.' hours<br>';
echo $since_start->i.' minutes<br>';
echo $since_start->s.' seconds<br>';
8983 days total
24 years
7 months
2 days
6 hours
14 minutes
2 seconds
اگر ممکنه این کد رو برام بنویسید:
میخام ساعت الان رو بگیرم و با sleep() بعد از یک زمان معین دوباره ساعت رو بگیرم و اختلاف ساعت رو بدست بیارم... مثلا بعد از 3 ثانیه.... در اصل میخام با حلقه for یک عملیات رو انجام بدم و میخام قبلش زمان رو بگیرم و بعدشم هم بگیرم تا ببینم چقد طول کشیده تا انجام بشه! اگر متوجه شدید برام بفرستید ممنون
این چیزی که میگین مربوط میشه به Performance و Benchmarking که بحث مهمیه و کلی هم ابزار براش وجود داره.
مثال:
$time_start = microtime(true);
//sample script
for($i=0; $i<1000; $i++){
//do anything
}
$time_end = microtime(true);
//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;
//execution time of the script
echo '<b>Total Execution Time:</b> '.$execution_time.' Mins';
microtime
نتیجه رو بسیار دقیق میده که اینجا ما اون رو به دقیقه نشون دادیم.
من میخام نتیجه کار به صورت ثانیه باشه ( مثلا 351 ثانیه)
چکار کنم
نتیجه اینی که گفتید دقیقه و اعشاریه!!!!!
سوال برنامه نویسی دارید؟
ندونستن عیب نیست، نپرسیدن چرا!