本文实例讲述了Symfony2针对输入时间进行查询的方法。分享给大家供大家参考,具体如下:

一般情况下:前端输入一个时间,我们一般是先将时间修改成一个时间戳
strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳
例如:
$startTimestamp = strtotime($startDate); $endTimestamp = strtotime($endDate);
然后:如果只是时间,为防止别人传的时间是*,需要将时间都修改成Y-m-d的形式
$start = date('Y-m-d 00:00:00', $startTimestamp);
$end = date('Y-m-d 23:59:59', $endTimestamp);
1. 在MySQL中的使用
if(empty($startDate)) {
throw new \Exception('起始时间不为空', BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
if (empty($endDate)) {
$endDate = $startDate;
}
$startTimestamp = strtotime($startDate);
$endTimestamp = strtotime($endDate);
if ($startTimestamp > $endTimestamp) {
throw new \Exception('时间参数错误', BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
if ($status == InventoryOrder::STATUS_SUBMITTED) {
$index = 'i.submitTime';
} else if ($status == InventoryOrder::STATUS_UNSUBMITTED) {
$index = 'i.createTime';
} else if (empty($status)) {
$index = 'i.createTime';
} else {
throw new \Exception('时间格式不正确', BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
$sql = 'SELECT i FROM AppBundle:InventoryOrder i WHERE ';
$sql .= $index;
$sql .= ' BETWEEN :startDate AND :endDate ';
$start = date('Y-m-d 00:00:00', $startTimestamp);
$end = date('Y-m-d 23:59:59', $endTimestamp);
$params['endDate'] = $end;
$params['startDate'] = $start;
if (!empty($status)) {
$sql .= ' AND i.status = :status';
$params['status'] = $status;
}
$sql .=' ORDER By i.createTime DESC';
$query = $this->entityManager->createQuery($sql);
$orderList = $query->setParameters($params)->getResult();
2. 在mongodb中的时间的输入和查询列子
在这里面其实有两个坑:
@ ->field('submit_time')->gt(new \DateTime($start))
->field('submit_time')->lt(new \DateTime($end))
这里面,对于时间的查询,大于和小于,一定要传一个对象。
$query->field('status')->equals($status);
这里面,在mongodb里面不会默认帮你识别这是一个int型,是什么类型,必须手动的传入。
$data = array();
if (!isset($startDate)) {
throw new \Exception("参数不正确", BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
if (empty($endDate)) {
$endDate = $startDate;
}
$startTimestamp = strtotime($startDate);
$endTimestamp = strtotime($endDate);
if ($startTimestamp > $endTimestamp) {
throw new \Exception("参数不正确", BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
$start = date('Y-m-d 00:00:00', $startTimestamp);
$end = date('Y-m-d 23:59:59', $endTimestamp);
$scanner = Order::FROM_TYPE_SCANNER;
$query = $this->documentManager
->createQueryBuilder('AppBundle:Order')
->field('submit_time')->gt(new \DateTime($start))
->field('submit_time')->lt(new \DateTime($end))
->field('from_type')->equals("$scanner");
if (!empty($status) && in_array($status, array(Order::STATUS_CANCELLED, Order::STATUS_SUBMITTED))) {
$status = $status + 0;
$query->field('status')->equals($status);
} else if (empty($status)) {
$status = Order::STATUS_SUBMITTED + 0;
$query->field('status')->equals($status);
} else {
throw new \Exception("参数不正确", BaseException::ERROR_CODE_ILLEGAL_PARAMETER);
}
$orderList = $query->sort('create_time', 'DESC')
->getQuery()
->execute();
更多关于Symfony2相关内容感兴趣的读者可查看本站专题:《Symfony框架入门教程》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Symfony2框架的PHP程序设计有所帮助。
# Symfony2
# 时间
# 查询
# Symfony查询方法实例小结
# Symfony2联合查询实现方法
# Symfony2使用Doctrine进行数据库查询方法实例总结
# 高性能PHP框架Symfony2经典入门教程
# Symfony2实现从数据库获取数据的方法小结
# Symfony2学习笔记之模板用法详解
# Symfony2框架学习笔记之表单用法详解
# Symfony2框架创建项目与模板设置实例详解
# symfony2.4的twig中date用法分析
# Symfony2学习笔记之控制器用法详解
# Symfony2安装第三方Bundles实例详解
# Symfony2实现在controller中获取url的方法
# 不正确
# 列子
# 这里面
# 程序设计
# 进阶
# 相关内容
# 在这
# 帮你
# 感兴趣
# 这是一个
# 英文
# 给大家
# 更多关于
# 先将
# 所述
# 面向对象
# 为空
# 操作技巧
# 有两个
# 讲述了
相关文章:
网站制作需要会哪些技术,建立一个网站要花费多少?
如何在建站宝盒中设置产品搜索功能?
,怎么在广州志愿者网站注册?
如何通过VPS建站无需域名直接访问?
宝塔建站后网页无法访问如何解决?
建站之星如何配置系统实现高效建站?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何在宝塔面板中创建新站点?
如何通过主机屋免费建站教程十分钟搭建网站?
微信推文制作网站有哪些,怎么做微信推文,急?
建站org新手必看:2024最新搭建流程与模板选择技巧
实现点击下箭头变上箭头来回切换的两种方法【推荐】
建站之星IIS配置教程:代码生成技巧与站点搭建指南
如何通过虚拟主机空间快速建站?
建站之星备案是否影响网站上线时间?
做企业网站制作流程,企业网站制作基本流程有哪些?
Python路径拼接规范_跨平台处理说明【指导】
python的本地网站制作,如何创建本地站点?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
h5在线制作网站电脑版下载,h5网页制作软件?
如何快速搭建高效香港服务器网站?
大连 网站制作,大连天途有线官网?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何在万网开始建站?分步指南解析
建站之星会员如何解锁更多建站功能?
网站制作免费,什么网站能看正片电影?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Python lxml的etree和ElementTree有什么区别
建站之星CMS五站合一模板配置与SEO优化指南
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
盐城做公司网站,江苏电子版退休证办理流程?
实现虚拟支付需哪些建站技术支撑?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
如何通过虚拟机搭建网站?详细步骤解析
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
购物网站制作公司有哪些,哪个购物网站比较好?
C#如何序列化对象为XML XmlSerializer用法
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
如何在IIS中新建站点并配置端口与IP地址?
如何快速生成凡客建站的专业级图册?
如何快速使用云服务器搭建个人网站?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
实例解析Array和String方法
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
Android滚轮选择时间控件使用详解
*请认真填写需求信息,我们会在24小时内与您取得联系。