有没有办法只显示一段时间,如果它不是30分钟,但显示:30表示时间是30分钟?
http://new.clairvoyant.co/details/?Pin=4378这是我的页面。在时间表中,您可以看到块真的很短,在它们中显示时间段真的很困难。
如果开始和结束时间只有几个小时,我想做的是显示一个像下午12点到下午4点的格式。如果其中一个是30分钟,则在下午12点至下午4:30显示。
这是否可以通过格式化strttotime来完成?输入变量在24小时(24:00:00)。结束输出格式为12小时。
$Start12 = strtotime($Shift['Start']);
$Stop12 = strtotime($Shift['Stop']);
输出如下:
<span class='c'>".date('g:ia',$Start12)." to ".date('g:ia',$Stop12)."</span>
答案 0 :(得分:1)
假设仅分钟数为30
:
function printDate30($date){
if(date('i',$date) == 30){
return date('g:ia',$date);
}else{
return date('ga',$date);
}
}
并使用
echo "<span class='c'>".printDate30($Start12)." to ".printDate30($Stop12)."</span>";
答案 1 :(得分:1)
这是一个很好的示例配对,我没有语法检查这个:
// Create a new object from your start time
$firstDateTime = new DateTime( strtotime( $Shift['Start'] ) );
$firstDateTimeFormatter = 'H'; // Set the object to be default formatted for the hour only
// Repeat, blah...
$secondDateTime = new DateTime( strtotime( $Shift['Stop'] ) );
$secondDateTimeFormatter = 'H';
// If the minutes for this object are not 00 then we want to format the time
// differently, these two checks do that
if( $firstDateTime->format('i') != '00' )
$firstDateTimeFormatter = 'H:m';
if( $secondDateTime->format('i') != '00' )
$secondDateTimeFormatter = 'H:m';
// See the results
echo $firstDateTime->format( $firstDateTimeFormatter );
echo $secondDateTime->format( $secondDateTimeFormatter );
// Put this into a convenient function to use
function formatTime( $time )
{
$dt = new DateTime( strtotime( $time ) );
return ( $dt->format('i') != '00' ? $dt->format('H:i') : $dt->format('H') );
}