Hướng dẫn how to add multiple times in php? - làm thế nào để thêm nhiều lần trong php?

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang xây dựng một bảng thời gian trực tuyến cho nhân viên. Vào cuối bảng thời gian, tôi cần hiển thị tổng số giờ: phút làm việc.

Tôi có giờ làm việc như các biến:

$MondaysActual 
$TuesdaysActual 
$WednesdaysActual 
$ThursdaysActual 
$FridaysActual 

Dữ liệu được giữ là một cái gì đó giống như 07:20 - nhân viên đã làm việc 7 giờ 20 phút

Làm thế nào tôi có thể chỉ cần thêm 5 lần này với nhau và hiển thị tổng số HRS: MINS?

Hướng dẫn how to add multiple times in php? - làm thế nào để thêm nhiều lần trong php?

Đã hỏi ngày 2 tháng 5 năm 2018 lúc 16:14May 2, 2018 at 16:14

5

Thử cái này

   $times = array();


$times[] = "12:59";
$times[] = "0:58";
$times[] = "0:02";

// pass the array to the function
echo AddPlayTime($times);

function AddPlayTime($times) {
    $minutes = 0; //declare minutes either it gives Notice: Undefined variable
    // loop throught all the times
    foreach ($times as $time) {
        list($hour, $minute) = explode(':', $time);
        $minutes += $hour * 60;
        $minutes += $minute;
    }

    $hours = floor($minutes / 60);
    $minutes -= $hours * 60;

    // returns the time already formatted
    return sprintf('%02d:%02d', $hours, $minutes);
}

Đã trả lời ngày 2 tháng 5 năm 2018 lúc 19:07May 2, 2018 at 19:07

ShaneshaneShane

7553 Huy hiệu vàng7 Huy hiệu bạc21 Huy hiệu đồng3 gold badges7 silver badges21 bronze badges

Làm việc với ngày và thời gian có thể khó khăn trừ khi bạn sử dụng một số chức năng được xây dựng tiện dụng, tôi thấy mình cần phải thực hiện một vài tính toán thời gian khác nhau khiến tôi bối rối trong một lúc (đi xuống trong sự xấu hổ!).

Tôi có một loạt các lần ở định dạng HH: MM: SS mà tôi cần phải cộng lại để có được tổng cộng. Đầu tiên tôi đã thử thêm tất cả chúng lại với nhau tất nhiên kết quả là sai nên tôi đã đưa Google cố gắng tìm một giải pháp nhanh chóng cho vấn đề của mình, vì điều này có thể nhanh hơn nhiều.

Tôi đã tìm thấy rất nhiều kết quả, hầu hết trong số đó có dòng sau dòng mã! quá nhiều cho một nhiệm vụ đơn giản như vậy, tôi muốn một cái gì đó đơn giản sau đó tôi nhận ra vì tôi đã có thời gian ở định dạng thời gian tôi có thể sử dụng strtotime sẽ chuyển đổi thời gian từ vài giờ, phút và giây thành giây sau đó tôi có thể thêm những thứ đó vài giây cùng nhau.

Đây là mã rất đơn giản của tôi trong hành động:

$total = strtotime($r->mon) + strtotime($r->tue) + strtotime($r->wen) + strtotime($r->thu) + strtotime($r->fri);

Hàm Strtotime mong đợi một dữ liệu sẽ được truyền, bạn cũng có thể vượt qua một thời gian đó là những gì tôi đã làm trong trường hợp này, sau đó hiển thị tổng thời gian tôi sử dụng ngày kết hợp với Strtotime:

date('H:i', $total)

Một giải pháp rất đơn giản và dễ mở rộng.

Thêm thời gian với nhau có thể phức tạp khi mất vài giây, phút và giờ vào các tính toán nhiều thời gian, thêm một mảng vào hỗn hợp thậm chí còn phức tạp hơn! & NBSP;

Lớp học nhỏ bên dưới này cho phép nhiều lần được thêm vào với nhau cho dù chúng có bao nhiêu.

Lớp:

class times_counter {

    private $hou = 0;
    private $min = 0;
    private $sec = 0;
    private $totaltime = '00:00:00';

    public function __construct($times){
        
        if(is_array($times)){

            $length = sizeof($times);

            for($x=0; $x <= $length; $x++){
                    $split = explode(":", @$times[$x]); 
                    $this->hou += @$split[0];
                    $this->min += @$split[1];
                    $this->sec += @$split[2];
            }

            $seconds = $this->sec % 60;
            $minutes = $this->sec / 60;
            $minutes = (integer)$minutes;
            $minutes += $this->min;
            $hours = $minutes / 60;
            $minutes = $minutes % 60;
            $hours = (integer)$hours;
            $hours += $this->hou % 24;
            $this->totaltime = $hours.":".$minutes.":".$seconds;
        }
    }

    public function get_total_time(){
        return $this->totaltime;
    }

}

Ví dụ sử dụng:

$times = array(
    '00:30:00',
    '01:15:00',
    '06:40:20',
    '02:05:16'
);

$counter = new times_counter($times);
echo $counter->get_total_time();

//outputs:
10:30:36

Điều này hoạt động bằng cách chuyển bộ xây dựng một mảng thời gian, sau đó miễn là mục được truyền là một mảng A cho vòng lặp được thực hiện để có được giờ, phút và giây từ tất cả các lần trong mảng. Thời gian tính toán được thực hiện chuyển đổi trong 60 giây và phút một cách thích hợp và cuối cùng là giờ 24.

Một lớp rất tiện dụng để lấy nỗi đau khi tính toán thời gian và 'chỉ làm việc'.

Chúng tôi có thể bao gồm một tệp PHP nhiều lần không?

Nếu tệp được bao gồm hai lần, PHP sẽ gây ra lỗi nghiêm trọng vì các chức năng đã được khai báo.Nên sử dụng bao gồm_once thay vì kiểm tra xem tệp đã được bao gồm và có điều kiện trả về bên trong tệp được bao gồm.. It is recommended to use include_once instead of checking if the file was already included and conditionally return inside the included file.

Làm thế nào để tính tổng thời gian trong PHP?

Có hai cách để tính tổng thời gian từ mảng.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.Ví dụ 1: Ví dụ này đọc các giá trị từ mảng và chuyển đổi nó thành định dạng thời gian.Using strtotime() function: The strtotime() function is used to convert string into the time format. This functions returns the time in h:m:s format. Example 1: This example reads the values from the array and converts it into the time format.

Chức năng nào được sử dụng để truy xuất dữ liệu và thời gian ở định dạng mảng?

Nhận nhiều thành phần ngày và thời gian sử dụng hàm YMD để có được các giá trị năm, tháng và ngày của T làm ba mảng số riêng biệt.Sử dụng hàm HMS để có được các giá trị giờ, phút và thứ hai của T làm ba mảng số riêng biệt.ymd function to get the year, month, and day values of t as three separate numeric arrays. Use the hms function to get the hour, minute, and second values of t as three separate numeric arrays.