【发布时间】:2012-12-14 14:47:01
【问题描述】:
我使用 PHP 中的 time() 函数存储我的日期。我的程序中有一个搜索部分。日期字段由 jquery datepicker 完成。这是我的日期格式,例如:14/12/2012。
问题是表中的字段是时间戳。如何使用 MySQL 查询从这个日期字符串中选择实际日期?
我使用 codeigniter 作为框架。有什么功能可以做到吗?
请帮帮我。
【问题讨论】:
标签: php mysql codeigniter
我使用 PHP 中的 time() 函数存储我的日期。我的程序中有一个搜索部分。日期字段由 jquery datepicker 完成。这是我的日期格式,例如:14/12/2012。
问题是表中的字段是时间戳。如何使用 MySQL 查询从这个日期字符串中选择实际日期?
我使用 codeigniter 作为框架。有什么功能可以做到吗?
请帮帮我。
【问题讨论】:
标签: php mysql codeigniter
time() 只返回一个 unix 时间戳 - 自 1970 年 1 月 1 日以来的秒数。 MySQL 时间戳、日期和日期时间字段与该值不直接兼容,但您可以轻松地在两者之间进行转换:
SELECT UNIX_TIMESTAMP(yourtimestampfield) AS php_compatible_time_value, ...
注意 MySQL 的日期字符串格式是yyyy-mm-dd。除非您转换为 MySQL 的预期格式,否则您不能使用 dd/mm/yyyy 格式。
【讨论】:
$date = '14/12/2012';
$d = explode('/',$date);
$timestamp = mktime(0, 0, 0, $d[1], $d[0], $d[2]);
然后你在查询中使用 $timestamp
当然,对于英国/美国等不同格式的日期,您需要不同的方法。mm/dd/yyyy 或 dd/mm/yyyy
【讨论】:
WHERE t.mytimestampcol >= '2012-11-30' AND t.mytimestampcol < DATE_ADD('2012-11-30',INTERVAL 1 DAY)