花一小时进入时间戳

时间:2011-06-18 19:44:39

标签: php unix-timestamp

如何将时间(例如09)转到UNIX时间戳?我试过strtotime()但没有成功。 strtotime("9")不返回任何内容。

修改
这是我以前没有提到的错,但是我试图检查当前时间+ 30分钟是否大于或等于时间,保存在mysql DB中。例如,我将数据库中的时间保存为09(可能是我的错误)。

3 个答案:

答案 0 :(得分:2)

尝试mktime

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

http://php.net/manual/en/function.mktime.php

答案 1 :(得分:2)

虽然到目前为止两个答案都可能更好,但我认为我会提供一个仍然使用strtotime()的“可爱”解决方案:

$hour = "09";
echo strtotime("Today $hour:00");

演示:http://codepad.org/k9U4BiKN

答案 2 :(得分:1)

您在编辑中提供的其他信息澄清了一两件事。如果数据库值是表示小时的字符串,则生成用于比较的时间戳可能不会有多大帮助。在这种情况下,您也可以将小时值与数字进行比较:

// Value from database
$db_hour = '09';

// Hour 30 minutes from now
$compare_hour = date('H', strtotime('+30 minutes'));

// Check if current time + 30 minutes is bigger
if (intval($compare_hour) >= intval($db_hour))

如果数据库小时值在0到23之间,那么比较当然总是在22:30到23:29之间返回。

注意:如果MySQL表字段是时间戳字段,您可以通过“SELECT EXTRACT(HOUR FROM your_field)AS db_hour FROM your_table”获得小时部分;

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_extract