簡體   English   中英

如何在php中划分小時?

[英]how to divide hours in php?

我已經嘗試為我的問題尋找答案已經有一段時間了,但我還沒有解決。 我是 PHP 新手。

問題。

2:00 除以 2 (hr/2) = 1:00 //格式 h:i

謝謝。

我認為最安全的方法是轉換為秒並使用日期來顯示它。

$time ="3:00";

list($hours, $minutes) = explode(":", $time);
$minutes += $hours*60;
$seconds = $minutes*60;
date_default_timezone_set ("UTC"); // makes sure there is no DST or timezone added to result
echo "new time: " . date("h:i", $seconds/2);  // 01:30

你的問題是“h:i”格式,但它寫成“1:00”。
要獲得 1:00,您需要使用格式“G:i”。
https://3v4l.org/4MjVQ

根據記錄,在任何編程/腳本語言中划分時間都是微不足道的。 因為如果我們談論的是時間戳,那么划分是沒有意義的,因為時間戳是年表上的一個特定點。

另一方面,持續時間可以划分。 但是,我不太確定 php 的 API 是否有任何持續時間處理的實現。 您仍然可以繼續使用您自己的自定義實現來處理時間間隔。 它會是這樣的。

<?php
    #We need at least two timestamps to get a duration
    $time1 = new DateTime("2018-4-23 10:00:00");
    $time2 = new DateTime("2018-4-23 11:00:00");

    $durationInSeconds = ($time2->getTimestamp()) - ($time1->getTimestamp()); //Get the interval in seconds
    #echo $durationInSeconds; // Gives you 3600 seconds
    # Now you can divide these seconds into anything you prefer.
    # Let's say I want two intervals. This means, I have to go for the timestamp in between the two. I could do that by simply adding half the amount of seconds
    $halfDurationInSeconds = $durationInSeconds / 2;
    $time1->add(new DateInterval("PT".$halfDurationInSeconds."S")); // adds 1800 secs
    echo $time1->format('Y-m-d H:i:s');

它非常簡單。 使用 strtotime

$your_time = "12:00";
date_default_timezone_set ("UTC");
$secs = strtotime($your_time ) - strtotime("00:00:00");
echo date("H:i:s",$secs / 2);

我想我們也可以在這里使用乘法。 感謝上面的建議。 它確實幫助了我很多。 這是我針對上述建議修改后的代碼。

function multiplyTime ($multiple, $prescribeWorkingHrs) {
    list($hours, $minutes) = explode(":", $prescribeWorkingHrs);
    $minutes += $hours*60;
    $seconds = $minutes*60;
    $product = $seconds * $multiple;

    return date("h:i", $product);
}

結果:

multiplyTime(0.75, "8:00") = "6:00"
multiplyTime(0.5, "8:00") = "4:00"
multiplyTime(0.25, "8:00") = "2:00"

希望這也會有所幫助。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM