php在日期函数中设置时间

时间:2014-03-13 13:29:17

标签: php date time timestamp

希望这很简单,但我无法获得可预测的结果。我想要它的原因是为mongo数据库添加一个可比较的时间,该数据库将在几秒钟内存储,但以格式化的时间字符串打印到屏幕,以及将时间+持续时间打印为格式化的时间字符串。在下面的例子中,它应该是开始时间的上午8:30和结束时间的上午10:30

<?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

感谢您的光临。

2 个答案:

答案 0 :(得分:1)

是日期函数将第二个参数作为时间戳(秒)

答案 1 :(得分:1)

对我来说似乎是时区问题 试试这个:

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 - 设置脚本中所有日期/时间函数使用的默认时区

因此,您可以将命令放在更方便的位置,以便每次都不要调用。