我的表有一列,它在mysql time()
格式中被格式化。
當它是一個值分配到名爲$preRemainOt
我要重新安排它到最近的15分鐘進入最接近的15分鐘
function roundTime($whatTime)
{
echo $whatTime."=>";
$roundTime= round (strtotime($whatTime)/60 * 15 );
echo date("H:i:s",$roundTime)."<br>";
return date("H:i:s",$roundTime);
}
$validOt =roundTime($preRemainOt);
<pre>
few bad result given from my try as follow:
$preRemainOt=>$validO
03:43:00=>06:55:45
01:05:00=>06:16:15
02:00:00=>06:30:00
but result shuld be as follow:
$preRemainOt=>$validO
03:43:00=>03:45:00
01:05:00=>01:00:00
02:00:00=>02:00:00
1.pls給我一個想法PHP變量。
2.如果我的剩餘值($preRemainOt
)超過24小時,會發生什麼 ex:$preRemainOt='26:43:00'
對於php或mysql函數無關緊要。
什麼是存儲這樣的OT計算
UPDATE1
一些建議後,我在三節潑我的功能最好的MySQL數據類型
function secondToTime($timeStamp)
{
$hours=intval($timeStamp/3600);
$mins=intval($timeStamp/60) % 60;
$secs=$timeStamp % 60;
return sprintf("%d:%02d:%02d",$hours, $mins, $secs);
}
function timeToSecond($time='00:00:00')
{
list($hours, $mins, $secs) = explode(':', $time);
$timeToSecond = ($hours * 3600) + ($mins * 60) + $secs;
return $timeToSecond;
}
function roundTime($interval='00:00:00')
{
$interval=timeToSecond($interval);
$interval = intval($interval) + 450;
$interval -= $interval % 900;
return secondToTime($interval);
}
列值分配到因爲之前$preRemainOt
變量,還有另外幾個steps.i也改變這樣兩個步驟,
function timeDiff($lastTime,$firstTime)
{
$firstTimetime=timeToSecond($firstTime);
$lastTime=timeToSecond($lastTime);
$timeDiff=$lastTime-$firstTime;
return secondToTime($timeDiff);
}
function timeAdd($firstTime,$lastTime)
{
$firstTimetime=timeToSecond($firstTime);
$lastTime=timeToSecond($lastTime);
$timeAdd=2*$lastTime-$firstTime;;
return secondToTime($timeAdd);
}
所以我決定使用選擇UNIX_TIMESTAMP()
是困難的。這將改變我的整個腳本。 在這種情況下"%d:%02d:%02d"
給廢話
1天= 24小時,你想加班(每天)> 1天?嗯..有趣.. – Fr0zenFyr
yes.thank你的注意力 – kbitsoft