php timestring() 无法 return 正确结果 4:00 下午

php timestring() fails to return correct result 4:00 PM

目标: 将 X 秒添加到现有时间戳 (H:i:s) 并将其转换为人类可读的非军事 (24:00 hr) AM/PM 时间戳 ('3:15 pm')。如果可能的话,我想在时间戳记为“03:15”的情况下去掉前导零。

问题:所有测试return相同的结果调整添加的可变时间return相同的最终结果:16:00:00and/or 04:00 下午

问题: 关于我的代码在哪里/如何失败以及如何更正它的指导。我用谷歌搜索并搜索了堆栈等。我进行了 运行 几个小时的实验,无论我输入测试的变量如何,我总是得到相同的结果。我已经尝试了 23 次测试并不断地 returned 相同的结果。

环境: MAMP,PHP 8.1,Bootstrap

当前结果: 01:43:21
1652258601
1652258807
16:00:00 下午
4:00 下午

代码:

$myTIME = '01:43:21';
$staging .= $myTIME . '<br>';

$this_time = strtotime($myTIME);
$staging .= $this_time . '<br>';

$add = rand(23, 218);
$stamp = $this_time + $add;

$staging .= $stamp . '<br>';
$staging .= date("H:i:s A", strtotime($stamp)) . '<br>';

#   $stamp = '23:00'; $stamp = new DateTime($stamp); echo $dt->format('h:i A');
$est = date('h:i:s', strtotime($stamp));

$staging .= date( 'g:i A', strtotime( $stamp ) );

$stamp 已经是一个 integer/timestamp,所以 strtotime($stamp) 失败了。取下它,日期格式就会正确。

$est = date('h:i:s', $stamp);