Hướng dẫn how to convert seconds to minutes and seconds in php? - làm thế nào để chuyển đổi giây sang phút và giây trong php?

Giải pháp từ: //gist.github.com/stevejobzniak/c91a8e2426bac5cb9b0cbc1bdbc45e4b

Mã này tránh các cuộc gọi chức năng tẻ nhạt và việc xây dựng chuỗi từng mảnh càng nhiều càng tốt, và các chức năng lớn và cồng kềnh mà mọi người đang thực hiện cho việc này.

Nó trả về một đầu ra ở định dạng "1H05M00S" và sử dụng các số 0 hàng đầu trong vài phút và giây, miễn là một thành phần thời gian khác không khác đi trước chúng.

Nó cũng bỏ qua tất cả các thành phần hàng đầu trống để tránh cung cấp cho bạn thông tin vô dụng như "0H00M01S" [thay vào đó sẽ hiển thị là "1s"].

Kết quả ví dụ: "1S", "1M00S", "19M08S", "1H00M00S", "4H08M39S".

$duration = 1; // values 0 and higher are supported!
$converted = [
    'hours' => floor[ $duration / 3600 ],
    'minutes' => floor[ [ $duration / 60 ] % 60 ],
    'seconds' => [ $duration % 60 ]
];
$result = ltrim[ sprintf[ '%02dh%02dm%02ds', $converted['hours'], $converted['minutes'], $converted['seconds'] ], '0hm' ];
if[ $result == 's' ] { $result = '0s'; }

Nếu bạn muốn làm cho mã thậm chí ngắn hơn [nhưng không thể đọc được], bạn có thể tránh mảng $converted và thay vào đó đặt các giá trị trực tiếp trong cuộc gọi Sprintf [], như sau:

$duration = 1; // values 0 and higher are supported!
$result = ltrim[ sprintf[ '%02dh%02dm%02ds', floor[ $duration / 3600 ], floor[ [ $duration / 60 ] % 60 ], [ $duration % 60 ] ], '0hm' ];
if[ $result == 's' ] { $result = '0s'; }

Thời lượng phải là 0 hoặc cao hơn trong cả hai phần mã ở trên. Thời lượng tiêu cực không được hỗ trợ. Nhưng bạn có thể xử lý các thời lượng âm bằng cách sử dụng mã thay thế sau: Thay vào đó:

$duration = -493; // negative values are supported!
$wasNegative = FALSE;
if[ $duration < 0 ] { $wasNegative = TRUE; $duration = abs[ $duration ]; }
$converted = [
    'hours' => floor[ $duration / 3600 ],
    'minutes' => floor[ [ $duration / 60 ] % 60 ],
    'seconds' => [ $duration % 60 ]
];
$result = ltrim[ sprintf[ '%02dh%02dm%02ds', $converted['hours'], $converted['minutes'], $converted['seconds'] ], '0hm' ];
if[ $result == 's' ] { $result = '0s'; }
if[ $wasNegative ] { $result = "-{$result}"; }
// $result is now "-8m13s"

  1. Buildhome thành viên nổi tiếng Well-Known Member

    Tin nhắn: 837like nhận được: 13best Câu trả lời: 0 điểm: 108

    #số 8

    Có, tôi đã sử dụng chức năng mà bạn đã viết

    JOBERLINE PEON



    I have a var that have int value of seconds, such as:

    Tin nhắn: 1Like nhận được: 0best Trả lời: 0 điểm: 0

    #9

    ... Phiên bản 1 dòng nhanh và bẩn:

    $ giây = '150'; Echo [[$ min = sàn [$ giây/60]]

  2. Mukeshdak ​​peon Peon

    #10

    Nó không thể đơn giản hơn sau đó .________ 6

    Khách mời Singahost

  3. Tin nhắn: 30like nhận được: 0best Trả lời: 0 điểm: 0 Well-Known Member

    QWERTY12 Thành viên hoạt động

    Tin nhắn: 56Like nhận được: 0best Trả lời: 1 điểm: 51

    
    
    

  4. Krakjoe thành viên nổi tiếng Well-Known Member

    Tin nhắn: 1.795like nhận được: 141 câu trả lời nhất: 0 điểm: 135

    #7

    
    
    

  5. Nếu có một chức năng cho một cái gì đó, như các chuỗi định dạng chẳng hạn, bạn nên sử dụng nó, thì có ít ký hiệu hơn khi bạn sử dụng các chức năng được thử và thử nghiệm ... cộng với nó đã được các lập trình viên thiết lập nhiều hơn nhiều so với chính bạn [ các tác giả PHP] rằng đây là cách tối ưu để thực hiện một nhiệm vụ ... Peon

    Buildhome thành viên nổi tiếng

    #số 8

    Có, tôi đã sử dụng chức năng mà bạn đã viết

    JOBERLINE PEON

  6. Buildhome thành viên nổi tiếng Well-Known Member

    Tin nhắn: 837like nhận được: 13best Câu trả lời: 0 điểm: 108

    #6

    DPFReaks, cảm ơn nhưng tôi cũng muốn "0" trước thời điểm nếu nó thấp hơn 10 phút., thanks but I also wanted "0" before the time if it's lower than 10 minutes.

    Legend2, đó là những gì tôi muốn. Bạn chỉ quên thêm "S" vào VAR "thứ hai" trong dòng thứ hai của bạn, tôi đã sửa nó và bây giờ nó hoạt động rất tốt !!, that's what I wanted.
    You just forgot to add "s" to the "second" var in your second line, I've fixed it and now it's working GREAT!!

    Krakjoe và Andrew, mã của bạn cũng là thứ tôi muốn. Rất dễ hiểu và sử dụng. Cảm ơn! and andrews, Your code is also what I wanted. Very easy to understand & usage. Thanks!

    Cảm ơn tất cả bạn bè của tôi vì sự giúp đỡ nhanh chóng của bạn! Tôi đã thêm vào mỗi bạn một đại diện
    I've added to each of you a Rep

  7. Krakjoe thành viên nổi tiếng Well-Known Member

    Tin nhắn: 1.795like nhận được: 141 câu trả lời nhất: 0 điểm: 135

    #7

    Nếu có một chức năng cho một cái gì đó, như các chuỗi định dạng chẳng hạn, bạn nên sử dụng nó, thì có ít ký hiệu hơn khi bạn sử dụng các chức năng được thử và thử nghiệm ... cộng với nó đã được các lập trình viên thiết lập nhiều hơn nhiều so với chính bạn [ các tác giả PHP] rằng đây là cách tối ưu để thực hiện một nhiệm vụ ...

  8. Buildhome thành viên nổi tiếng Well-Known Member

    Tin nhắn: 837like nhận được: 13best Câu trả lời: 0 điểm: 108

    #số 8

    Có, tôi đã sử dụng chức năng mà bạn đã viết

  9. JOBERLINE PEON Peon

    Tin nhắn: 1Like nhận được: 0best Trả lời: 0 điểm: 0

    #9

    ... Phiên bản 1 dòng nhanh và bẩn:

    $ giây = '150'; Echo [[$ min = sàn [$ giây/60]]
    echo [[$min=floor[$seconds/60]]

Bài Viết Liên Quan

Chủ Đề