我正在尝试搜索我的数据库并查找仅在特定年份发生的场地的结果,例如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');
再次感谢,希望将来人们发现这有用。
答案 0 :(得分: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).''));
答案 1 :(得分:1)
这个怎么样? FROM_UNIXTIME('Venues.venue_date', '%Y')