Php 当秒小于或等于60秒时,以1 0显示时间
我正在显示视频,我想显示持续时间。我正在使用以下命令:Php 当秒小于或等于60秒时,以1 0显示时间,php,datetime,Php,Datetime,我正在显示视频,我想显示持续时间。我正在使用以下命令: echo ltrim(date('i:s', $vduration), '0') //result 5:40 但是,如果视频只有40秒。这个公式行不通。它表明 :40 基本上,如果视频小于60秒,它应该只显示1个零(而不是2个),如下所示: 0:40 是否有一个神奇的公式,或者我是否需要使用条件来检查是否小于或等于60秒?使用printf(),而不是date() $minutes = date('i', $vduration); $
echo ltrim(date('i:s', $vduration), '0')
//result
5:40
但是,如果视频只有40秒。这个公式行不通。它表明
:40
基本上,如果视频小于60秒,它应该只显示1个零(而不是2个),如下所示:
0:40
是否有一个神奇的公式,或者我是否需要使用条件来检查是否小于或等于60秒?使用printf()
,而不是date()
$minutes = date('i', $vduration);
$seconds = date('s', $vduration);
printf("%d:%02d", $minutes, $seconds);
%d
将格式化一个不带前导零的数字,%02d
将格式化一个带前导零的两位数字。使用printf()
而不是日期()
$minutes = date('i', $vduration);
$seconds = date('s', $vduration);
printf("%d:%02d", $minutes, $seconds);
%d
将格式化一个没有前导零的数字,%02d
将格式化一个有前导零的两位数字。日期不适合表示时间间隔。DateInterval类更适合。也可以表示不带前导零的分钟数
//example to create a date interval
$timeStart = date_create_from_format('!','');
$timeEnd = date_create_from_format('!i:s','00:07');
$interval = $timeStart->diff($timeEnd);
//output
echo $interval->format('%i:%S'); //0:07
如果给定了分和秒,还可以直接创建日期间隔
$minute= 1;
$second = 40;
$interval = new DateInterval('PT'.$minute.'M'.$second.'S');
日期不适合表示时间间隔。DateInterval类更适合。也可以表示不带前导零的分钟数
//example to create a date interval
$timeStart = date_create_from_format('!','');
$timeEnd = date_create_from_format('!i:s','00:07');
$interval = $timeStart->diff($timeEnd);
//output
echo $interval->format('%i:%S'); //0:07
如果给定了分和秒,还可以直接创建日期间隔
$minute= 1;
$second = 40;
$interval = new DateInterval('PT'.$minute.'M'.$second.'S');
你知道ltrim正在做什么吗@艾伦,我想他知道为什么这样不行,问题是怎么做他想做的。啊,我明白了,对不起。我会将ltrim
替换为str_replace
以将“00:”替换为“0:”,即str_replace('00:','0:',date('I:s',$vduration))代码>你知道ltrim正在做什么吗@艾伦,我想他知道为什么这样不行,问题是怎么做他想做的。啊,我明白了,对不起。我会将ltrim
替换为str_replace
以将“00:”替换为“0:”,即str_replace('00:','0:',date('I:s',$vduration))代码>