亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP - 無法從時間中刪除分鐘

PHP - 無法從時間中刪除分鐘

PHP
蕭十郎 2023-04-28 15:58:49
我有 3 個變量存儲時間,它們如下;$start_time_name = 開始時間$end_time_name = 結束時間$total_break_name = 休息時間我可以計算開始時間和結束時間之間的差異,盡管它從不考慮中斷(即使中斷變量帶回正確的值)$total_hours_work_cal = ($end_time_name - $total_break_name);對此的計算是;結束時間 = 10:00開始時間 = 05:00休息時間 = 00:30但它只返回 05:00 而不是預期的 04:30有任何想法嗎?我在Stack Overflow上嘗試了很多用戶建議的方法,但都無濟于事。**編輯*編輯以包含更多代碼;$start_time_name = $_POST['start_time_name'];  $end_time_name = $_POST['end_time_name'];  $total_break_name = $_POST['total_break_name'];  $total_hours_work_cal = ($end_time_name - $total_break_name - $start_time_name)   * 60 * 60;  echo "BEFORE CONVERSION" . $total_hours_work_cal;  $total_hours_work_cal = gmdate("H:i:s", $total_hours_work_cal);  echo "AFTER CONVERSION" . $total_hours_work_cal;
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

function hoursandmins($time, $format = '%02d:%02d'){

    if ($time < 1) {

        return;

    }

    $hours = floor($time / 60);

    $minutes = ($time % 60);

    return sprintf($format, $hours, $minutes);

}


$start_time_name    = "05:00";

$end_time_name  = "10:00";

$total_break_name   = "30"; //in minutes


$start_time_name = strtotime($start_time_name);

$end_time_name   = strtotime($end_time_name);

$total_break_name = (int) $total_break_name * 60; //convert into seconds


$total_hours_work_cal = $end_time_name - $total_break_name - $start_time_name; //total time will be in seconds

$total_hours_work_cal = $total_hours_work_cal / 60; //converted into minutes;


$total_hours_work_cal = hoursandmins($total_hours_work_cal); //convert into hours and minutes

echo $total_hours_work_cal;


查看完整回答
反對 回復 2023-04-28
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

/* justfor testing purpose to have input */


$_POST['start_time_name'] = "05:00";

$_POST['total_break_name'] = "00:30";

$_POST['end_time_name'] = "10:00";



$start_time_name = $_POST['start_time_name'];

$end_time_name = $_POST['end_time_name'];

$total_break_name = $_POST['total_break_name'];


$end_time = mktime(explode(":",$end_time_name)[0],explode(":",$end_time_name)[1]);

$start_time = mktime(explode(":",$start_time_name)[0],explode(":",$start_time_name)[1]);

$total_break = mktime(explode(":",$total_break_name)[0],explode(":",$total_break_name)[1]);


$diff = $end_time + $total_break - $start_time;


$total_hours_work_cal = date("H:i",$diff);


echo "TOTAL HOURS OF WORK : " . $total_hours_work_cal;


// TOTAL HOURS OF WORK : 05:30


查看完整回答
反對 回復 2023-04-28
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

<?php

/*


$total_hours_work_cal = ($end_time_name - $total_break_name);


The calculation for this would be;


    End time = 10:00

    Start Time = 05:00

    Break Time = 00:30

*/


$start = new \DateTime('05:00:00');

$end = new \DateTime('10:00:00');

$break = new \DateInterval('PT30M');


$beginEndInterval = $end->diff($start);


$total = new \DateTime('00:00');

$totalComp = new \DateTime('00:00');

$total->add($beginEndInterval);

$total->add($break);

echo $totalComp->diff($total)->format('%H:%I'); // 04:30


查看完整回答
反對 回復 2023-04-28
  • 3 回答
  • 0 關注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號