全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Symfony2针对输入时间进行查询的方法分析

本文实例讲述了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小时内与您取得联系。