Symfony - 按月、年搜索表中的日期时间字段
我正在尝试在前端模块上创建一个搜索过滤器,它将按 2 个字段进行过滤,这两个字段是
我的数据库表中有项目的月份和年份,其中有一个日期时间字段。
我希望能够创建一个搜索,如果我从 2 个下拉列表中选择 1 月和 2010 年,则所有具有日期时间的项目如下:
2010-01-24 10:50:52
2010-01-25 10: 50:52
将列出
我正在使用 symfony 1.4 和 Propel ORM
谢谢
I am trying to create an search filter on a frontend module, that will filter by 2 fields, which are months and years
I have items in my db table, that have a datetime field.
I'd like to be able to create a search, where If I select January and 2010 from the 2 drop downs, then all items that have datetimes like:
2010-01-24 10:50:52
2010-01-25 10:50:52
Will be listed
I am using symfony 1.4 and Propel ORM
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么不尝试创建 2 个日期并检查该日期是否在它们之间,例如 (2010-01-01 >= $date && 2010-01-31 <= $date )。如果是这样,那么您的范围和所有巧合都会出现。
如果您绝对必须检查月份和年份,我建议使用诸如 YEAR(date) = $yourDate 和 Month(date) = $yourMonth 之类的函数,此函数应符合自定义标准,并且可能如下所示:
这是指向的链接MysqlDateFunctions
Why dont you try to create 2 date and check if that date is between them, for example (2010-01-01 >= $date && 2010-01-31 <= $date ). If so, then your in range and all coincidences will appear.
If you absolutely have to check for month and year i recommend using functions like YEAR(date) = $yourDate and Month(date) = $yourMonth, this functions should go along with a CUSTOM criteria and could look like:
Here is a link to MysqlDateFunctions
我在一个应用程序中有一些非常相似的东西。我使用 sfFormExtraPlugin 作为精美的日期小部件。
我的模型是“投诉”,我的行动是“探索”。
lib/form/ExploreForm.php:
apps/frontend/modules/complaint/templates/exploreSuccess.php:
在apps/frontend/modules/complaint/actions/中actions.class.php:
公共函数executeExplore($request)
{
// 默认值:本月第一天 - 1 年
实际查询在模型中,lib/model/doctrine/ComplaintTable.class.php:
现在,我正在使用 Doctrine,因此您必须在模型部分将其翻译成 Propelese,并且您可能不会执行我在这里所做的“按月细分的统计数据”,但它应该可以帮助您继续前进。祝你好运!
I've got something very similar in an app. I'm using the sfFormExtraPlugin for fancy date widgets.
My model is "Complaint" and my action is "Explore".
lib/form/ExploreForm.php:
apps/frontend/modules/complaint/templates/exploreSuccess.php:
In apps/frontend/modules/complaint/actions/actions.class.php:
public function executeExplore($request)
{
// default: the first day of this month - 1 year
And the actual query is in the model, lib/model/doctrine/ComplaintTable.class.php:
Now, I'm using Doctrine so you'll have to do a bit of translation into Propelese in the model part, and you may not be doing the "statistics broken down by month" thing I'm doing here, but it should help you get going. Good luck!