我需要比較兩個不同的時間。這兩種格式:時間(僅限與非日期)比較
小時:分:秒
他們沒有從當前時間回升。所以,沒有strtotime
或DateTime
。我不希望日期以任何方式參與比較。 這裏的每個問題都以strtotime
作爲答案。
我想要比較這兩個時間,其中一個是從數據庫中摘取(類型爲time
)&一個我手動給字符串。
例如:$A="00:00:00"
(如果可以存儲,否則請注意)。
如果有什麼辦法做到這一點,請你告訴我?Thnxx提前...
我需要比較兩個不同的時間。這兩種格式:時間(僅限與非日期)比較
小時:分:秒
他們沒有從當前時間回升。所以,沒有strtotime
或DateTime
。我不希望日期以任何方式參與比較。 這裏的每個問題都以strtotime
作爲答案。
我想要比較這兩個時間,其中一個是從數據庫中摘取(類型爲time
)&一個我手動給字符串。
例如:$A="00:00:00"
(如果可以存儲,否則請注意)。
如果有什麼辦法做到這一點,請你告訴我?Thnxx提前...
如果時間爲24小時格式,你可以簡單地通過字符串比較比較吧
$A="00:00:00"
$B="13:00:00"
if ($A > $B) {
// do stuff
}
我從數據庫中收到的數據是類型'時間' 所以不能真正比較 – Gogo
我相信當php從您的數據庫讀取,'時間'類型將自動轉換爲字符串。正確? – SajithNair
是的,你是好友;) – Gogo
,如果你不希望使用strtotime
或DateTime
我不知道它會爲您提供正確的輸出因爲它會比較字符串或INT值,因此無法計算準確的時間,以便更好地使用PHP的日期和時間函數
For eg: $A="00:00:00" (it will be a string value)
所以更好的輸出將被這兩個值使用strtotime()
轉換,做你的東西
對不起...不能使用它。這將是我最後的手段&將包括字符串拼接 – Gogo
你可以使用轉換你的時間到秒的功能,然後以此爲基礎進行結果的比較
function getTimeInSeconds($hours, $minutes, $seconds) {
$totalSeconds = 0;
//Add the numner of hours in seconds
$totalSeconds += ($hours * 60) * 60;
//Add the number of minutes in seconds
$totalSeconds += $minutes * 60;
//Add seconds
$totalSeconds += $seconds;
return $totalSeconds;
}
$firsttime = getTimeInSeconds(8, 30, 14);
$secondtime = getTimeInSeconds(10, 15, 06);
//If second time is later than first time
if($secondtime > $firsttime)
{
}
//If first time is later than second time
if($firsttime > $secondtime)
{
}
謝謝..這也是一個辦法 – Gogo
你可以只需將秒數乘以並比較即可。
$timebits = explode(':',$A);
$secondsDB = $timebits[2] + timebits[1]*60 + $timebits[0]*60*60
然後再比較你的手動時間,以秒爲單位。
如果您需要比較格式HH:MM:SS是否相等,或者如果一個在另一個之前,並且不想使用strtotime函數,則應將所有轉換爲秒並將其作爲數字進行比較。
簡單的例子:
$a="01:30:08";
$b="02:20:50";
function toseconds($str){
$array = explode(":",$str);
$val = $array[0] * 24 * 60;
$val += $array[1] * 60;
$val += $array[2];
return $val;
}
print toseconds($a); // print a
print " compare to ";
print toseconds($b); // print b
print " ";
if($a > $b){
print "b is before a";
}else if ($b > $a){
print "a is before b";
}else if($b == $a){
print "a and b are the same time";
}
您可以使用一個日期在此日期內 – k102
比較倍就像我說的一個一次我給手動。雖然不是一個好的做法,但那段時間將會被硬編碼,我需要將它與DB中可能有所不同的時間進行比較。 – Gogo