Làm cách nào để chuyển đổi giờ thành phút trong PHP?

Chúng ta phải dịch ngày từ thời khóa biểu sang định dạng dữ liệu mong muốn bằng cách sử dụng hàm ngày (dấu thời gian, 'định dạng ngày'), để có được kết quả trên

Tuy nhiên, ở đây chúng tôi chuyển đổi giây sang định dạng ngày dành riêng cho người dùng, giống như chúng tôi muốn hiển thị bên dưới

“14 ngày, sáu giờ, 56 phút, bảy giây”

Bạn cũng có thể xem các hướng dẫn Date PHP được đề xuất khác,

  • Cách nhận chênh lệch ngày so với ngày trong PHP
  • Cách chuyển đổi giây thành ngày, giờ và phút

The simple hours formula:
hours = seconds ÷ 3,600

Thời gian tính bằng giờ bằng thời gian tính bằng giây chia cho 3.600. Vì có 3.600 giây trong một giờ nên đó là tỷ lệ chuyển đổi được sử dụng trong công thức

Liên kết được Tài trợ

Hàm PHP để chuyển đổi giây thành ngày, giờ, phút và giây

function secsToStr($secs) {  
    if($secs>=86400){$days=floor($secs/86400);$secs=$secs%86400;$r=$days.' day';if($days<>1){$r.='s';}if($secs>0){$r.=', ';}}  
    if($secs>=3600){$hours=floor($secs/3600);$secs=$secs%3600;$r.=$hours.' hour';if($hours<>1){$r.='s';}if($secs>0){$r.=', ';}}  
    if($secs>=60){$minutes=floor($secs/60);$secs=$secs%60;$r.=$minutes.' minute';if($minutes<>1){$r.='s';}if($secs>0){$r.=', ';}}  
    $r.=$secs.' second';if($secs<>1){$r.='s';}  
    return $r;  
}

Cách sử dụng đơn giản
echo secsToStr(90360);

đầu ra
1 ngày, 1 giờ, 6 phút 0 giây

Lựa chọn 2. Chuyển đổi Giây thành Ngày, Giờ và Phút

Đoạn mã sau rất đơn giản, để chuyển giây độc lập hoặc trộn thành ngày, giờ và phút

Sử dụng phép chia dài, trong đó tổng số phút là số bị chia và 60 là số chia, đặt Q = thương và R = số dư, sau đó công thức chuyển đổi phút thành giờ & phút là

tổng số phút ÷ 60 = Q giờ và R phút

\( \dfrac{\text{tổng số phút}}{60} = \text{Q giờ và R phút} \)

Thí dụ

Để hiển thị một ví dụ và cách nó hoạt động về mặt toán học, giả sử chúng ta muốn chuyển đổi 190 phút thành giờ và phút. Chúng tôi nhân với [1 giờ / 60 phút] là 1. Đơn vị tối thiểu bị hủy bỏ và kết quả của chúng tôi là đơn vị giờ

Mã nguồn để chuyển đổi giây thành giờ, phút và giây được cung cấp bên dưới. Chương trình đã cho được biên dịch và thực thi thành công

 " . (int)$hrs . ":" . (int)$mins . ":" . (int)$secs);

?>

đầu ra

HH:MM:SS-> 1:48:50

Giải trình

Trong chương trình trên, chúng tôi đã tạo một biến $seconds, được khởi tạo với 6530 giây. Sau đó, chúng tôi chuyển đổi giây thành giờ, phút và giây tương ứng

Ghi chú. Bài đăng này đã hơn hai năm tuổi và vì vậy thông tin ở đây có thể đã lỗi thời. Nếu bạn phát hiện ra điều gì đó, vui lòng để lại nhận xét và chúng tôi sẽ cố gắng khắc phục

Ngày 29 tháng 11 năm 2010 - Thời gian đọc 4 phút

Để chuyển đổi giá trị thời gian thành giá trị thập phân đại diện cho số phút có thể hữu ích cho một số phép tính nhất định. Hàm sau có thời gian là một chuỗi hh. mm. ss và trả về một giá trị thập phân trong vài phút

/**
 * Convert time into decimal time.
 *
 * @param string $time The time to convert
 *
 * @return integer The time as a decimal value.
 */
function time_to_decimal($time) {
    $timeArr = explode(':', $time);
    $decTime = ($timeArr[0]*60) + ($timeArr[1]) + ($timeArr[2]/60);

    return $decTime;
}

Nếu chúng ta dành thời gian của 11. 11. 11 phần này được chia thành 3 phần bởi hàm phát nổ () thành giờ, phút và giây, sau đó được xử lý theo cách sau

Minutes = (Hours x 60) + (Minutes) + (Seconds / 60)
Minutes = (11 x 60) + (11) + (11 / 60)
Minutes = (660) + (11) + (0.18333333)
Minutes = 671.18333333

Chức năng có thể được sử dụng như sau

echo time_to_decimal("11:11:11"); // prints 671.18333333

Mặt trái của hàm này lấy giá trị thập phân và trả về một chuỗi có định dạng hh. mm. ss

/**
 * Convert decimal time into time in the format hh:mm:ss
 *
 * @param integer The time as a decimal value.
 *
 * @return string $time The converted time value.
 */
function decimal_to_time($decimal) {
    $hours = floor($decimal / 60);
    $minutes = floor($decimal % 60);
    $seconds = $decimal - (int)$decimal;
    $seconds = round($seconds * 60);

    return str_pad($hours, 2, "0", STR_PAD_LEFT) . ":" . str_pad($minutes, 2, "0", STR_PAD_LEFT) . ":" . str_pad($seconds, 2, "0", STR_PAD_LEFT);
}

Chức năng này có thể được sử dụng như sau

echo decimal_to_time(671.18333333); // prints 11:11:11

Lưu ý rằng các chức năng này xử lý lượng thời gian, không phải thời gian trong ngày. Chuyển đổi giữa thời gian và thời gian thập phân trong ngày yêu cầu một bộ tính toán khác

CẬP NHẬT. Cảm ơn một người đăng ẩn danh đã chỉ ra một số lỗi, những lỗi này hiện đã được sửa

PHP

thời gian

đổi

Làm cách nào để chuyển đổi giờ thành phút trong PHP?

Được viết bởi. Philip Norton

Phil là người sáng lập và quản trị viên của #. viết mã và là một chuyên gia CNTT làm việc ở Tây Bắc Vương quốc Anh. Tốt nghiệp năm 2003 tại Đại học Aberystwyth với bằng Thạc sĩ Khoa học Máy tính Phil trước đây đã từng làm quản trị viên cơ sở dữ liệu, trên bàn trợ giúp CNTT, huấn luyện viên hệ thống, kiến ​​trúc web, tư vấn khả năng sử dụng, blogger và chuyên gia SEO. Phil có nhiều kinh nghiệm xây dựng và duy trì các trang web PHP cũng như làm việc với các công nghệ liên quan như JavaScript, HTML, CSS, XML, Flex, Apache, MySQL và Linux

Bạn muốn biết thêm?

Hãy để chúng tôi giúp. Thuê chúng tôi để cung cấp dịch vụ đào tạo, tư vấn, xử lý sự cố và hơn thế nữa

hỗ trợ chúng tôi

Hãy ủng hộ chúng tôi và cho phép chúng tôi tiếp tục viết bài

Làm cách nào để chuyển đổi giờ thành phút trong PHP?
Trở thành người bảo trợ

Làm cách nào để chuyển đổi giờ thành phút trong PHP?
Mua cho tôi một ly cà phê

Bình luận

Chào Philip,

Mã của bạn thực sự hoạt động theo cách bạn đã mô tả, tuy nhiên có một số chi tiết tốt hơn đã gây ra sự cố cho tôi khi sử dụng mã

Trong hàm time_to_decimal, dòng 12 sẽ đọc như sau

________số 8_______

Như được viết trong bài đăng của bạn, giây thực sự đại diện cho các phân số của một giờ (1/3600) trái ngược với các phân số của một phút (1/60).  

Chúng tôi gặp sự cố tương tự trong hàm decimal_to_time cũng như sự cố liên quan đến hàm round(). Mình đã sửa lại hàm decimal_to_time như sau

function decimal_to_time($decimal) {
    $hours = floor((int)$decimal / 60);
    $minutes = floor((int)$decimal % 60);
    $seconds = $decimal - (int)$decimal; 
    $seconds = round($seconds * 60); 
 
    return str_pad($hours, 2, "0", STR_PAD_LEFT) . ":" . str_pad($minutes, 2, "0", STR_PAD_LEFT) . ":" . str_pad($seconds, 2, "0", STR_PAD_LEFT);
}

round() ở dòng 2 và 3 đã được thay thế bằng floor(). Điều này là do hành vi của round() trả về 1 khi được cung cấp. 5. Một ví dụ như sau

Giả sử chúng tôi đang chuyển đổi 1. 30. 30 thành số thập phân đại diện cho phút. Sử dụng hai chức năng được đăng, chúng tôi sẽ có

echo time_to_decimal('1:30:30'); // prints 90.008333333333, seconds are still converted incorrectly

// this should display the input from the first function
echo decimal_to_time(90.008333333333); // prints 02:02:30, not correct

Trong ví dụ này, dòng 2 của mã gốc tính toán thành - round( 90/60 ) = round(1. 5) = 2. Vì chúng ta chỉ muốn số nguyên giờ trong biến $decimal, chúng ta nên sử dụng floor() thay thế. floor() sẽ luôn làm tròn đến số nguyên thấp nhất (1 trong trường hợp này)

Làm cách nào để nhận được số phút từ số giờ trong PHP?

Chuyển đổi phút thành giờ và phút bằng PHP .
nếu ($ thời gian < 1) {
trở lại;
$hours = sàn($time / 60);
$ phút = ($ thời gian % 60);
quay lại sprintf($format, $hours, $minutes);

Làm cách nào để chuyển đổi số thành giờ và phút trong PHP?

? . MM. SS-". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". ". $seconds = 6530; $secs = $seconds % 60; $hrs = $seconds / 60; $mins = $hrs % 60; $hrs = $hrs / 60; print ("HH:MM:SS-> " . (int)$hrs.

Làm cách nào để chuyển đổi phút thành giờ và phút trong laravel?

Đơn giản thế thôi. $phút = 125; . .

Làm cách nào để chuyển đổi giờ thành phút trong SQL?

Một cách là sử dụng các hàm như datepart() hoặc chuyển đổi thành văn bản và lấy các chuỗi con để lấy giờ và phút . Nếu bạn muốn làm tròn số giây đến phút gần nhất, hãy chộp lấy chúng. Sau đó viết một số SQL đơn giản để làm toán dễ dàng. Giây/60 = phút (làm tròn như bạn mong muốn).