PHP5在空白时间变量/计算中加上1 HR
||
我最近升级到PHP5,并注意到在我构建的应用程序中,似乎有些小时增加了我的一些变量和计算。
我在用:
date_default_timezone_set(\'欧洲/伦敦\');
据我了解,这意味着PHP使用的是BST而不是标准的GMT,但是当我打印空变量时(之前使用\“ H:i \”返回00:00)-我现在的值为01:00。
计算两个日期时间之间的时/分差异时,我还会得到一个额外的小时。
我的基本代码是:
<td><?php if(isset($item->start_time)) { echo date(\'H:i\', strtotime($item->start_time)); } ?></td>
<td><?php if(isset($item->finish_time)) { echo date(\'H:i\', strtotime($item->finish_time)); }?></td>
<td>
<?php
$start = strtotime($item->start_time);
$end = strtotime($item->finish_time);
$elapsed = $end - $start;
if($elapsed != NULL) { echo date(\"H:i\", $elapsed); }
?>
</td>
例如,rown返回以下内容:
开始:08:57(基于我数据库中的$ item-> start_time为2011-03-19 08:57:23)
结束:12:59(基于我数据库中的$ item-> finish_time为2011-03-19 12:59:38)
计算:05:02(应该为04:02)
没有找到相关结果
已邀请:
2 个回复
街茬
在将您经过的时间转换为H:i格式之前
记得之后再重设一次 您将经过的时间当作格式化的日期时间戳记(这是date()函数所期望的),因此PHP遵循它的标准行为并将其视为语言环境格式化的日期/时间(不理解) (它被用作经过时间),因此它会增加小时以根据您的时区设置显示正确的时间。
草票
否则,当$ elapsed大于24小时时,您将遇到问题。