PHP,调整检索时间

时间:2011-12-10 09:17:24

标签: php time format

我有一个cronjob,每小时从我的一台计算机通过CURL调用一个PHP文件。调用文件时,PHP代码会检索服务器时间,因为它应该以HH:MM格式将其记录在数据库字段中。

客户端和服务器没有完全同步,因此,当客户端调用PHP文件时,对于客户端来说它可能发生在14点,而对于服务器它仍然是13:59。我的数据库不接受13:59,因为我应该总是在14:00,15:00,16:00等等。

由于unsolved issue with time and my computer我无法通过CURL发送参数,我无法更改服务器时间。

我唯一可以尝试的是调整从PHP检索的时间,当它是13:59(甚至14:01)时,调整并保存为14:00。有没有PHP magics 来解决这个问题?我的想法是将时间转换为13,59(或14,01),然后以某种方式围绕它们,但也许有更好的选择。

感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

我能想到的以HH:MM格式字符串获取最近小时的最简单方法是:

已修复(再次)

$nearest_hour = str_pad(round(date('H') + ((date('i') - 1) / 60)),2,'0',STR_PAD_LEFT).':00';

答案 1 :(得分:1)

$time = '13:59';
list($h, $m) = explode(':', $time);
$h += $m > 30;

echo $h . ':00';

这样的虚拟解决方案怎么样? ; - )

答案 2 :(得分:1)

假设您的时间字符串格式为$time格式为HH:MM,时间戳格格式为$timestamp。你这样做:

$t_str = explode(':', $time);
$hour = (int)t_str[0];
$min = (int)t_str[1];
if($min >= 30)
 $hour++;

if($hour == 24)
 $hour = 0;

$time = "{$hour}:00";

你的时间将适当设定。