比较次数(H:i:s),如果为零则忽略秒数



所以我工作的系统,我必须做很多时间比较,我的意思是H:i:s

的问题是,有时有00秒,有时不是,因为时间给我作为字符串比较类似的时间,有和没有第二个零都会失败

这里我们有两个类似的时间,但是我的if将在一个

中丢失的秒内失败。
$db_time = '11:20';
$given_time = '11:20:00' ; 
if($db_time == $given_time )
{
echo "same time";
}
else 
{
echo "different time";
}

现在我用的是

if( in_array( $given_time , [$db_time , "$db_time:00"] )  )
{
echo "same time";
}
else 
{
echo "different time";
}

是不理想的!特别是因为我不知道哪一个少了0

我确实使用carbon,我更喜欢如果我可以通过使用碳来解决这个问题

$db_time = '11:20';
$given_time = '11:20:00';
if(Carbon::parse($db_time)->eq($given_time)) {
echo "same time";
} else {
echo "different time";
}

您可以创建Date对象并比较它们。

$db_time    = '11:20';
$given_time = '11:20:00';
echo isSameTime($db_time, $given_time) ? 'same' : 'different';
function isSameTime(string $time1, string $time2): bool
{
return new DateTime($time1) == new DateTime($time2);
}

same

最新更新