我需要从返回的时间值中删除秒数。我明白了
12:00:00
我想
12:00pm
我尝试使用date()
,但它一直将时间返回为凌晨 1:00。
echo date('g:ia', $timestamp);
我需要从返回的时间值中删除秒数。我明白了
12:00:00
我想
12:00pm
我尝试使用date()
,但它一直将时间返回为凌晨 1:00。
echo date('g:ia', $timestamp);
使用strtotime()
-
echo date('g:ia', strtotime($timestamp));
date()
函数 - -string date ( string $format [, int $timestamp = time() ] )
是$timestamp
一个整数 Unix 时间戳。
$timestamp = $timestamp - ($timestamp % 60);
换句话说,使用模函数从时间中减去当前分钟的秒数。
有时,越简单越好(并且比 strtotime 更有效)。
如果只需要删除秒数(不需要PM),可以同时使用MYSQL或php:
MYSQL:
SELECT SUBSTRING(SEC_TO_TIME(seconds), 1, 5);
PHP:
$cleantime=substr($time,0,-3);
两者都会去掉秒数并保留小时和分钟
感谢 Jahanzeb 增强 PHP 版本以支持 > 99 小时
你试过strtotime()
吗?
echo date( 'g:ia', strtotime("12:00:00") );
就个人而言,我更喜欢这种方法:
private function floorMinute(DateTimeImmutable $dateTime): DateTimeImmutable
{
return $dateTime->modify(sprintf('-%d seconds', (int)$dateTime->format('s')));
}
这可以更改/扩展为四舍五入。