如何将时间(例如09)转到UNIX时间戳?我试过strtotime()
但没有成功。 strtotime("9")
不返回任何内容。
修改:
这是我以前没有提到的错,但是我试图检查当前时间+ 30分钟是否大于或等于时间,保存在mysql DB中。例如,我将数据库中的时间保存为09(可能是我的错误)。
答案 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 ]]]]]]] )
答案 1 :(得分:2)
虽然到目前为止两个答案都可能更好,但我认为我会提供一个仍然使用strtotime()
的“可爱”解决方案:
$hour = "09";
echo strtotime("Today $hour:00");
答案 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