【发布时间】:2011-04-21 09:09:41
【问题描述】:
我最近升级到 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)
【问题讨论】:
标签: php date time timezone binary-search-tree