10

我需要从返回的时间值中删除秒数。我明白了

12:00:00

我想

12:00pm

我尝试使用date(),但它一直将时间返回为凌晨 1:00。

echo date('g:ia', $timestamp);
4

5 回答 5

23

使用strtotime()-

echo date('g:ia', strtotime($timestamp));

date()函数 - -string date ( string $format [, int $timestamp = time() ] )$timestamp一个整数 Unix 时间戳。

于 2013-01-18T03:39:06.523 回答
13
$timestamp = $timestamp - ($timestamp % 60);

换句话说,使用模函数从时间中减去当前分钟的秒数。

有时,越简单越好(并且比 strtotime 更有效)。

于 2013-01-18T03:53:08.670 回答
5

如果只需要删除秒数(不需要PM),可以同时使用MYSQL或php:

MYSQL:

SELECT SUBSTRING(SEC_TO_TIME(seconds), 1, 5);

PHP:

$cleantime=substr($time,0,-3);

两者都会去掉秒数并保留小时和分钟

感谢 Jahanzeb 增强 PHP 版本以支持 > 99 小时

于 2017-01-12T11:56:11.130 回答
2

你试过strtotime()吗?

echo date( 'g:ia', strtotime("12:00:00") );
于 2013-01-18T03:38:36.157 回答
0

就个人而言,我更喜欢这种方法:

 private function floorMinute(DateTimeImmutable $dateTime): DateTimeImmutable
 {
     return $dateTime->modify(sprintf('-%d seconds', (int)$dateTime->format('s')));
 }

这可以更改/扩展为四舍五入。

于 2020-10-06T12:57:28.963 回答