Hướng dẫn php difference between two hours - chênh lệch php giữa hai giờ

Tôi có hai lần - ví dụ: thời gian hiện tại - 08:24 và ngày là 02/01/2013 ở định dạng DD/mm/yyyy và tôi có một thời gian khác vào lúc 13:46 và ngày là 31/12/2012. Vì vậy, làm thế nào tôi có thể tính toán chênh lệch giữa 2 lần tính bằng giờ bằng PHP. (tức là 42,63 giờ) Cảm ơn trước.

Hướng dẫn php difference between two hours - chênh lệch php giữa hai giờ

Andy Lester

88.7K13 Huy hiệu vàng100 Huy hiệu bạc149 Huy hiệu đồng13 gold badges100 silver badges149 bronze badges

Đã hỏi ngày 2 tháng 6 năm 2013 lúc 3:04Jun 2, 2013 at 3:04

Deval Khandelwaldeval KhandelwalDeval Khandelwal

3.3781 Huy hiệu vàng26 Huy hiệu bạc38 Huy hiệu đồng1 gold badge26 silver badges38 bronze badges

1

Chuyển đổi cả hai thành các giá trị dấu thời gian, và sau đó trừ để có được sự khác biệt trong giây.

$ts1 = strtotime(str_replace('/', '-', '02/01/2013 08:24'));
$ts2 = strtotime(str_replace('/', '-', '31/12/2012 13:46'));
$diff = abs($ts1 - $ts2) / 3600;

Đã trả lời ngày 2 tháng 6 năm 2013 lúc 3:07Jun 2, 2013 at 3:07

4

Một cách khác là sử dụng các lớp liên quan đến ngày của PHP. Ví dụ dưới đây sử dụng DateTime::diff() để có được đối tượng DateInterval ($interval). Sau đó, nó sử dụng các thuộc tính của khoảng thời gian để đạt tổng số giờ trong khoảng thời gian.

$a = DateTime::createFromFormat('H:i d/m/Y', '08:24 02/01/2013');
$b = DateTime::createFromFormat('H:i d/m/Y', '13:46 31/12/2012');

$interval = $a->diff($b);
$hours    = ($interval->days * 24) + $interval->h
          + ($interval->i / 60) + ($interval->s / 3600);

var_dump($hours); // float(42.633333333333)

Đã trả lời ngày 2 tháng 6 năm 2013 lúc 9:03Jun 2, 2013 at 9:03

Salathesaleditsalathe

50.4K11 Huy hiệu vàng103 Huy hiệu bạc130 Huy hiệu đồng11 gold badges103 silver badges130 bronze badges

Tôi có một giải pháp đơn giản, hãy thử cái này -

echo getTimeDiff("10:30","11:10");

function getTimeDiff($dtime,$atime)
    {
        $nextDay = $dtime>$atime?1:0;
        $dep = explode(':',$dtime);
        $arr = explode(':',$atime);
        $diff = abs(mktime($dep[0],$dep[1],0,date('n'),date('j'),date('y'))-mktime($arr[0],$arr[1],0,date('n'),date('j')+$nextDay,date('y')));
        $hours = floor($diff/(60*60));
        $mins = floor(($diff-($hours*60*60))/(60));
        $secs = floor(($diff-(($hours*60*60)+($mins*60))));
        if(strlen($hours)<2){$hours="0".$hours;}
        if(strlen($mins)<2){$mins="0".$mins;}
        if(strlen($secs)<2){$secs="0".$secs;}
        return $hours.':'.$mins.':'.$secs;
    }

Đã trả lời ngày 31 tháng 1 năm 2017 lúc 12:14Jan 31, 2017 at 12:14

Nếu bạn có ngày là dấu thời gian (sử dụng strtotime nếu cần), thì chỉ cần trừ chúng, tùy ý lấy giá trị tuyệt đối, sau đó chia thành 3600 (số giây trong một giờ). Dễ dàng ^_ ^

Đã trả lời ngày 2 tháng 6 năm 2013 lúc 3:05Jun 2, 2013 at 3:05

Tôi nghĩ rằng mã sau rất hữu ích để có được ý tưởng về cách tính chênh lệch thời gian bằng cách sử dụng PHP

function date_diff($date_1 , $date_2 , $format) {
    $datetime1 = date_create($date_1);
    $datetime2 = date_create($date_2);

    $diff = date_diff($datetime1, $datetime2);

    return $diff->format($format);
}

Hàm trên rất hữu ích để tính toán sự khác biệt giữa hai lần cũng như ngày. Các ngày được đưa ra như là đối số với định dạng đầu ra.

Định dạng đầu ra được đưa ra dưới đây:

// ' %y năm %m tháng %d ngày %h giờ %i phút %s giây' => 1 năm 3 tháng 14 ngày 11 giờ 49 phút 36 giây // ' %y năm %m tháng %d ngày' = > 1 năm 3 tháng 14 ngày // '%m tháng%d ngày' => 3 tháng 14 ngày // '%d ngày%h giờ' => 14 ngày 11 giờ // '%d ngày' => 14 ngày // ' %H giờ %i phút %s giây' => 11 giờ 49 phút 36 giây // ' %i phút %s giây' => 49 phút 36 giây // ' %H giờ => 11 giờ //' %một ngày

Đã trả lời ngày 28 tháng 2 năm 2018 lúc 6:52Feb 28, 2018 at 6:52

Hướng dẫn php difference between two hours - chênh lệch php giữa hai giờ

CodemakerCodemakerCodemaker

9.4653 huy hiệu vàng69 Huy hiệu bạc60 Huy hiệu đồng3 gold badges69 silver badges60 bronze badges

Chỉ cần đặt điều này ở đây, cho bất kỳ ai cần tìm sự khác biệt giữa hai ngày/dấu thời gian trong ____10,

$a = DateTime::createFromFormat('H:i d/m/Y', '08:24 02/01/2013');
$b = DateTime::createFromFormat('H:i d/m/Y', '13:46 31/12/2012');

$interval = $a->diff($b);
$hours    = ($interval->days * 24) + $interval->h
          + ($interval->i / 60) + ($interval->s / 3600);

var_dump($hours); // float(42.633333333333)
1 'và'
$a = DateTime::createFromFormat('H:i d/m/Y', '08:24 02/01/2013');
$b = DateTime::createFromFormat('H:i d/m/Y', '13:46 31/12/2012');

$interval = $a->diff($b);
$hours    = ($interval->days * 24) + $interval->h
          + ($interval->i / 60) + ($interval->s / 3600);

var_dump($hours); // float(42.633333333333)
2 !!AND'
$a = DateTime::createFromFormat('H:i d/m/Y', '08:24 02/01/2013');
$b = DateTime::createFromFormat('H:i d/m/Y', '13:46 31/12/2012');

$interval = $a->diff($b);
$hours    = ($interval->days * 24) + $interval->h
          + ($interval->i / 60) + ($interval->s / 3600);

var_dump($hours); // float(42.633333333333)
2!!

$futureDate_raw = '12/13/2018'; // This is your finish date.
$fdate = strtotime($futureDate_raw);

$hours   = (($fdate - time()) / 3600;
$mins    = (($fdate - time()) % 3600) / 60;
$seconds = ((($fdate- time()) % 3600) % 60);

Đã trả lời ngày 25 tháng 11 năm 2018 lúc 16:09Nov 25, 2018 at 16:09

Hướng dẫn php difference between two hours - chênh lệch php giữa hai giờ

Mohd Abdul Mujibmohd Abdul MujibMohd Abdul Mujib

12.3k8 Huy hiệu vàng60 Huy hiệu bạc86 Huy hiệu Đồng8 gold badges60 silver badges86 bronze badges

Tôi thấy đây là cách đơn giản nhất để tìm sự khác biệt về thời gian, nó luôn phù hợp với tôi

$timestamp1 = strtotime(date('Y-m-d H:i'));
$timestamp2 = strtotime("2020-04-05 18:00");

  $diff = abs($timestamp2 - $timestamp1)/(60*60);
echo $diff;

Đã trả lời ngày 3 tháng 4 năm 2020 lúc 12:54Apr 3, 2020 at 12:54

Arati aratiArati

891 Huy hiệu bạc13 Huy hiệu đồng1 silver badge13 bronze badges

Làm thế nào tôi có thể có được sự khác biệt giữa hai lần trong PHP?

Chúng tôi sẽ sử dụng chức năng tích hợp Date_diff () để có được chênh lệch thời gian tính bằng phút.Đối với điều này, chúng tôi sẽ cần một ngày bắt đầu và ngày kết thúc để tính chênh lệch thời gian của chúng theo phút bằng cách sử dụng hàm date_diff ().Cú pháp: DATE_DIFF ($ DATETIME1, $ DATETIME2);using the built-in function date_diff() to get the time difference in minutes. For this, we will be needed a start date and end date to calculate their time difference in minutes using the date_diff() function. Syntax: date_diff($datetime1, $datetime2);

Làm thế nào tôi có thể nhận được giờ làm việc trong PHP?

Sử dụng hàm strtotime (): hàm strtotime () được sử dụng để chuyển đổi chuỗi thành định dạng thời gian.Các chức năng này trả về thời gian trong định dạng H: M: S.: The strtotime() function is used to convert string into the time format. This functions returns the time in h:m:s format.

Làm thế nào có thể thêm giờ vài phút và giây trong PHP?

Hàm DateTime :: add () là hàm sẵn trong PHP được sử dụng để thêm một lượng thời gian (ngày, tháng, năm, giờ, phút và giây) vào đối tượng DateTime đã cho.DateTime::add() function is an inbuilt function in PHP which is used to add an amount of time (days, months, years, hours, minutes and seconds) to the given DateTime object.

Php tính toán thời gian bắt đầu và kết thúc như thế nào?

Tính tổng thời gian từ thời gian bắt đầu và kết thúc trong PHP..
date1 = new DateTime ('2006-04-12T12: 30: 00') ;.
$ date2 = new DateTime ('2006-04-14t11: 30: 00') ;.
$ diff = $ date2-> diff ($ date1) ;.
$ giờ = $ diff-> h ;.
$ giờ = $ giờ + ($ diff-> ngày*24) ;.