String hh:mm to date.sql hh:mm(Android,Java)或String to Time(PHP)

时间:2016-05-23 19:46:40

标签: java php android time

在我的getRequest中我传递了两个字符串(minTime和maxTime),在MySQL中我有两列TIME(minTime和maxTime)我需要这两个值之间的所有寄存器。

因此我需要将minTime和maxTime转换为sql.date并检索正确的寄存器(字符串不能正常工作)。 我尝试了许多没有成功的事情,例如:

String minTime_user = "10:45"

java.util.Date utilDate = new SimpleDateFormat("hh:mm").parse(minTime_user);

//output: Thu Jan 01 10:28:00 GMT-05:00 1970

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

//output: 1970-01-01

如果不可能,我如何在PHP中将String转换为Time?我已经看过函数strtotime但它返回自1970年以来的秒数,理想情况下我更喜欢格式" hh:mm"能够比较而不必将我的表的值转换为Unix。

1 个答案:

答案 0 :(得分:0)

正如您所说,如果您的时间存储在TIME列中,您可以直接在MySQL查询中比较时间:

SELECT * FROM table WHERE column BETWEEN "10:45" AND "15:44";

See here进行演示。

PHP是一种松散类型的语言,因此您无需担心将其转换为任何内容;它以字符串形式发送给MySQL。

修改:the documentation建议在查询中明确地将值转换为TIME,因此您最终会得到以下内容:

SELECT * FROM table WHERE column BETWEEN CAST("10:45" AS TIME) AND CAST("15:44" AS TIME);

虽然在没有演员的情况下使用此功能我从未遇到任何问题。