希望这是一个简单的问题,但是我很难得到一个可预测的结果。我想要它的原因是向mongo数据库添加一个可比较的时间,该数据库将以秒为单位存储,但以格式化的时间字符串打印到屏幕上,以及将时间+持续时间作为格式化的时间字符串打印。在下面的例子中,开始时间应该是8:30am,结束时间应该是10:30am
<?php
function toTimeStamp($time){
// 60 * 60 * 8.5
// sec * min * $time
return 60 * 60 * $time;
}
function fromTimeStamp($sec){
return date('g:ia', $sec); // HH:MMam/pm
}
$start = toTimeStamp(8.5); // 30600
$duration = toTimeStamp(2); // 7200
echo fromTimeStamp($start) . '<br>'; // 9:30am
echo fromTimeStamp($duration) . '<br>'; // 3:00pm
echo fromTimeStamp(($start + $duration)) . '<br>'; // 11:30pm
我觉得好像是时区问题。
试试这个:
function fromTimeStamp($sec){
date_default_timezone_set('UTC');
return date('g:ia', $sec); // HH:MMam/pm
}
根据http://us.php.net/manual/en/function.date-default-timezone-set.php:
date_default_timezone_set -设置脚本中所有日期/时间函数使用的默认时区
所以你可以把命令放在一个更方便的地方,而不是每次都被调用。
是date函数接受第二个参数作为时间戳(秒)