محاسبه اختلاف ساعت در php

حل شده 

PHP

توسط goldsudo در 2 سال پیش
1 79.1k 7 2 سال پیش
goldsudo reza
1

سلام خسته نباشید
کد بدست اوردن اختلاف زمان (بین دو ساعت ) با ساعت / دقیقه / ثانیه در php میخام
اگر لطف کنید ممنون میشم

آخرین ویرایش: 25-04-2018 ساعت 12:15، توسط Reza

پاسخ ها

0

دیگه تبدیل کردن کار سختی نباید باشه

$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.
آخرین ویرایش: 25-04-2018 ساعت 13:37، توسط Reza
0

سلام.
روش های مختلفی وجود داره
یه مثال:

$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

اگر فقط روز رو میخواین کافیه ساعت و دقیقه رو از انتهای تابع پاک کنید.

0

خیلی ممنون. توی این دستور نمیشه از تاریخ شمسی استفاده کرد ؟؟؟

0

البته.
[ویرایش شده]
میتونید همون رو بصورت تاریخ شمسی وارد کنید:

$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
آخرین ویرایش: 25-04-2018 ساعت 13:05، توسط Reza
0

اگر ممکنه این کد رو برام بنویسید:

میخام ساعت الان رو بگیرم و با sleep() بعد از یک زمان معین دوباره ساعت رو بگیرم و اختلاف ساعت رو بدست بیارم... مثلا بعد از 3 ثانیه.... در اصل میخام با حلقه for یک عملیات رو انجام بدم و میخام قبلش زمان رو بگیرم و بعدشم هم بگیرم تا ببینم چقد طول کشیده تا انجام بشه! اگر متوجه شدید برام بفرستید ممنون

0

> اگر ممکنه این کد رو برام بنویسید: میخام ساعت الان رو بگیرم و با 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 نتیجه رو بسیار دقیق میده که اینجا ما اون رو به دقیقه نشون دادیم.

آخرین ویرایش: 25-04-2018 ساعت 13:21، توسط Reza
0

من میخام نتیجه کار به صورت ثانیه باشه ( مثلا 351 ثانیه)
چکار کنم
نتیجه اینی که گفتید دقیقه و اعشاریه!!!!!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.