Symfony2针对输入时间进行查询的方法分析
框架(架构)  /  管理员 发布于 8年前   472
本文实例讲述了Symfony2针对输入时间进行查询的方法。分享给大家供大家参考,具体如下: 一般情况下:前端输入一个时间,我们一般是先将时间修改成一个时间戳 strtotime ― 将任何英文文本的日期时间描述解析为 Unix 时间戳 例如: 然后:如果只是时间,为防止别人传的时间是造假,需要将时间都修改成Y-m-d的形式 1. 在MySQL中的使用 2. 在mongodb中的时间的输入和查询列子 在这里面其实有两个坑: 这里面,对于时间的查询,大于和小于,一定要传一个对象。 这里面,在mongodb里面不会默认帮你识别这是一个int型,是什么类型,必须手动的传入。 更多关于Symfony2相关内容感兴趣的读者可查看本站专题:《Symfony框架入门教程》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Symfony2框架的PHP程序设计有所帮助。$startTimestamp = strtotime($startDate);$endTimestamp = strtotime($endDate);
$start = date('Y-m-d 00:00:00', $startTimestamp);$end = date('Y-m-d 23:59:59', $endTimestamp);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();@ ->field('submit_time')->gt(new \DateTime($start))->field('submit_time')->lt(new \DateTime($end))$query->field('status')->equals($status);$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();您可能感兴趣的文章:
test1 在
opencode + Oh-my-openagent,我的第一个免费的ai编程智能体管家:Sisyphus中评论 test..122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..Zita 在
Google AI Studio升级全栈 vibe coding体验,可直接构建带登录和数据库的应用中评论 111222..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号
