0

我正在尝试搜索我的数据库并查找仅在给定年份(例如 2012 年、2013 年等)发生的场所的结果。

问题:“地点日期”是 UNIX 时间。现在我在弄清楚如何正确格式化搜索时遇到了问题。这就是我所拥有的,但是查询仍在拉动所有场地。

$s = $modx->newQuery('Venues');
$s->where(array(strftime('%Y','Venues.venue_date') => '2012'));
$shops = $modx->getCollection('Venues',$s);

知道我正在尝试做的事情是否可行吗?提前致谢!

解决方案

感谢这两个答案,我能够走上正确的轨道。我查看了这个链接http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html这对我来说本质上是一个金矿:) 下面是简化的代码......

$s->where('Year(from_unixtime(Venues.venue_date))=2013');

再次感谢,希望人们在未来发现这很有用。

4

2 回答 2

1

不确定您的其他代码,但对于选择 UNIX 时间,如何通过以下方式将日期格式化为 unix 时间戳:

mktime(0, 0, 0, 0, 0, 2012)

所以你的第二行会变成:

$s->where(array(strftime('%Y','Venues.venue_date') => ''.mktime(0, 0, 0, 0, 0, 2012).''));
于 2013-11-08T01:05:11.033 回答
1

那这个呢?FROM_UNIXTIME('Venues.venue_date', '%Y')

Mysql - 从unix时间戳中选择年份

于 2013-11-08T01:10:17.457 回答